move the library from data-analysis to data-access
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/DatabasesResourcesManager@96611 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
cad254b98b
commit
e5c13f4050
|
@ -0,0 +1,33 @@
|
|||
<?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 excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<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="KEYS"/>
|
||||
<classpathentry kind="var" path="JAVA_HOME"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>DatabasesResourcesManager</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.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,24 @@
|
|||
#### Use two appenders, one to log to console, another to log to a file
|
||||
#log4j.rootCategory= R
|
||||
|
||||
#### Second appender writes to a file
|
||||
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
#log4j.appender.stdout.Threshold=trace
|
||||
#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.logger.AnalysisLogger=TRACE,AR
|
||||
log4j.appender.AR=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.AR.Threshold=trace
|
||||
log4j.appender.AR.File=./Analysis.log
|
||||
log4j.appender.AR.MaxFileSize=50000KB
|
||||
log4j.appender.AR.MaxBackupIndex=2
|
||||
log4j.appender.AR.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.AR.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %p %t %c - %m%n
|
||||
|
||||
#### Third appender writes to a file
|
||||
log4j.logger.org.hibernate=H
|
||||
log4j.appender.H=org.apache.log4j.AsyncAppender
|
||||
log4j.appender.H.Threshold=OFF
|
||||
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,18 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<hibernate-configuration>
|
||||
<session-factory>
|
||||
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
|
||||
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
|
||||
<property name="connection.url">jdbc:mysql://146.48.87.169/timeseries</property>
|
||||
<property name="connection.username">root</property>
|
||||
<property name="connection.password">test</property>
|
||||
<!-- <property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property>-->
|
||||
<property name="dialect">org.hibernate.dialect.MySQLDialect</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,18 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<hibernate-configuration>
|
||||
<session-factory>
|
||||
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
|
||||
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
|
||||
<property name="connection.url">jdbc:mysql://146.48.87.169/col2oct2010</property>
|
||||
<property name="connection.username">root</property>
|
||||
<property name="connection.password">test</property>
|
||||
<!-- <property name="dialect">org.hibernatespatial.postgis.PostgisDialect</property>-->
|
||||
<property name="dialect">org.hibernate.dialect.MySQLDialect</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,19 @@
|
|||
<?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://statistical-manager.d.d4science.research-infrastructures.eu/testdb</property>
|
||||
<property name="connection.username">utente</property>
|
||||
<property name="connection.password">d4science</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="connection.schemaname">public</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,19 @@
|
|||
<?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://dbtest.research-infrastructures.eu/aquamapsorgupdated</property>
|
||||
<property name="connection.username">utente</property>
|
||||
<property name="connection.password">d4science</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="connection.schemaname">public</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,13 @@
|
|||
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
|
||||
LWR=org.gcube.dataanalysis.executor.nodes.algorithms.LWR
|
||||
BIONYM_BIODIV=org.gcube.dataanalysis.executor.nodes.transducers.bionym.BionymBiodiv
|
||||
BIONYM=org.gcube.dataanalysis.executor.nodes.transducers.bionym.BionymFlexibleWorkflowTransducer
|
||||
OCCURRENCES_MERGER=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceMergingNode
|
||||
OCCURRENCES_INTERSECTOR=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceIntersectionNode
|
||||
OCCURRENCES_SUBTRACTION=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceSubtractionNode
|
|
@ -0,0 +1,4 @@
|
|||
DBSCAN=org.gcube.dataanalysis.ecoengine.clustering.DBScan
|
||||
LOF=org.gcube.dataanalysis.ecoengine.clustering.LOF
|
||||
KMEANS=org.gcube.dataanalysis.ecoengine.clustering.KMeans
|
||||
XMEANS=org.gcube.dataanalysis.ecoengine.clustering.XMeansWrapper
|
|
@ -0,0 +1,4 @@
|
|||
MAPS_COMPARISON=org.gcube.dataanalysis.geo.algorithms.MapsComparator
|
||||
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,3 @@
|
|||
LOCAL_WITH_DATABASE=org.gcube.dataanalysis.ecoengine.processing.LocalSplitGenerator
|
||||
SIMPLE_LOCAL=org.gcube.dataanalysis.ecoengine.processing.LocalSimpleSplitGenerator
|
||||
D4SCIENCE=org.gcube.dataanalysis.executor.generators.D4ScienceDistributedProcessing
|
|
@ -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,10 @@
|
|||
AQUAMAPS_SUITABLE=org.gcube.dataanalysis.executor.nodes.algorithms.AquamapsSuitableNode
|
||||
AQUAMAPS_NATIVE=org.gcube.dataanalysis.executor.nodes.algorithms.AquamapsNativeNode
|
||||
AQUAMAPS_NATIVE_2050=org.gcube.dataanalysis.executor.nodes.algorithms.AquamapsNative2050Node
|
||||
AQUAMAPS_SUITABLE_2050=org.gcube.dataanalysis.executor.nodes.algorithms.AquamapsSuitable2050Node
|
||||
OCCURRENCES_MERGER=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceMergingNode
|
||||
OCCURRENCES_INTERSECTOR=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceIntersectionNode
|
||||
OCCURRENCES_SUBTRACTION=org.gcube.dataanalysis.executor.nodes.transducers.OccurrenceSubtractionNode
|
||||
LWR=org.gcube.dataanalysis.executor.nodes.algorithms.LWR
|
||||
BIONYM_BIODIV=org.gcube.dataanalysis.executor.nodes.transducers.bionym.BionymBiodiv
|
||||
BIONYM=org.gcube.dataanalysis.executor.nodes.transducers.bionym.BionymFlexibleWorkflowTransducer
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,36 @@
|
|||
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
|
||||
ABSENCE_CELLS_FROM_AQUAMAPS=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.MarineAbsencePointsFromAquamapsDistribution
|
||||
PRESENCE_CELLS_GENERATION=org.gcube.dataanalysis.ecoengine.transducers.simplequeryexecutors.MarinePresencePoints
|
||||
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
|
||||
FIN_TAXA_MATCH=org.gcube.dataanalysis.fin.taxamatch.TaxaMatchTransducer
|
||||
OBIS_MOST_OBSERVED_SPECIES=org.gcube.dataanalysis.trendylyzeralgorithms.AbsoluteSpeciesBarChartsAlgorithm
|
||||
OBIS_SINGLE_SPECIES_DISTRIBUTION_PER_AREA=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsAreaBarChart
|
||||
OBIS_SPECIES_OBSERVATIONS_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerYear
|
||||
OBIS_MOST_OBSERVED_TAXA=org.gcube.dataanalysis.trendylyzeralgorithms.TaxaObservationsBarChartAlgorithm
|
||||
OBIS_TAXA_OBSERVATIONS_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.TaxaObservationsPerYearLineChart
|
||||
OBIS_SPECIES_OBSERVATIONS_PER_LME_AREA=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerLMEAreaPerYearLineChart
|
||||
OBIS_SPECIES_OBSERVATIONS_PER_MEOW_AREA=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerMEOWAreaPerYearLineChart
|
||||
MOST_OBSERVED_SPECIES=org.gcube.dataanalysis.trendylyzeralgorithms.AbsoluteSpeciesBarChartsAlgorithm
|
||||
SPECIES_OBSERVATIONS_TREND_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerYear
|
||||
MOST_OBSERVED_TAXA=org.gcube.dataanalysis.trendylyzeralgorithms.TaxaObservationsBarChartAlgorithm
|
||||
TAXONOMY_OBSERVATIONS_TREND_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.TaxaObservationsPerYearLineChart
|
||||
SPECIES_OBSERVATIONS_PER_AREA=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsAreaBarChart
|
||||
SPECIES_OBSERVATION_LME_AREA_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerLMEAreaPerYearLineChart
|
||||
SPECIES_OBSERVATION_MEOW_AREA_PER_YEAR=org.gcube.dataanalysis.trendylyzeralgorithms.SpeciesObservationsPerMEOWAreaPerYearLineChart
|
||||
GET_TAXA_ALGORITHM=org.gcube.dataanalysis.JobSMspd.TaxaProcedure
|
||||
GET_OCCURRENCES_ALGORITHM=org.gcube.dataanalysis.JobSMspd.OccurencesProcedure
|
||||
FIN_GSAY_MATCH=org.gcube.dataanalysis.fin.gsay.GSAYTransducer
|
||||
POINTS_TO_MAP=org.gcube.dataanalysis.geo.algorithms.PointsMapsCreator
|
||||
POLYGONS_TO_MAP=org.gcube.dataanalysis.geo.algorithms.PolygonMapsCreator
|
||||
SPECIES_MAP_FROM_CSQUARES=org.gcube.dataanalysis.geo.algorithms.SpeciesDistributionsMapsCreatorFromCsquares
|
||||
SPECIES_MAP_FROM_POINTS=org.gcube.dataanalysis.geo.algorithms.SpeciesDistributionsMapsCreatorFromPoints
|
||||
BIONYM_LOCAL=org.gcube.dataanalysis.executor.nodes.transducers.bionym.BionymLocalTransducer
|
|
@ -0,0 +1,18 @@
|
|||
ANOMALIES_DETECTION=DBSCAN,LOF,KMEANS,XMEANS
|
||||
CLASSIFICATION=FEED_FORWARD_A_N_N_DISTRIBUTION
|
||||
CLIMATE=BIOCLIMATE_HSPEC,BIOCLIMATE_HCAF,BIOCLIMATE_HSPEN,HCAF_INTERPOLATION
|
||||
CORRELATION_ANALYSIS=HRS
|
||||
DATA_CLUSTERING=DBSCAN,LOF,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
|
||||
TAXA=FIN_TAXA_MATCH,BIONYM,BIONYM_BIODIV,BIONYM_LOCAL,FIN_GSAY_MATCH
|
||||
MAPS=MAPS_COMPARISON,DISCREPANCY_ANALYSIS,POINTS_TO_MAP,POLYGONS_TO_MAP,SPECIES_MAP_FROM_CSQUARES,SPECIES_MAP_FROM_POINTS
|
||||
BAYESIAN_METHODS=LWR,FEED_FORWARD_A_N_N_DISTRIBUTION
|
||||
OBIS_OBSERVATIONS_SPECIES_DATA=MOST_OBSERVED_SPECIES,MOST_OBSERVED_TAXA,SPECIES_OBSERVATIONS_PER_AREA
|
||||
OBIS_OBSERVATIONS_TRENDS=SPECIES_OBSERVATIONS_TREND_PER_YEAR,TAXONOMY_OBSERVATIONS_TREND_PER_YEAR,SPECIES_OBSERVATION_MEOW_AREA_PER_YEAR,SPECIES_OBSERVATION_LME_AREA_PER_YEAR
|
||||
SPD_PROCEDURES=GET_TAXA_ALGORITHM,GET_OCCURRENCES_ALGORITHM
|
|
@ -0,0 +1,100 @@
|
|||
3712:100:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3214:110:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3803:237:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1215:476:3,5889,6272,6065,73.92,24.7,0.45,29.31,19.41,9.9,,34.93,,35.07,34.79,,252,0,0,0,0,0
|
||||
1701:131:1,1854,2090,1961,46.78,5.32,0.57,10.62,1.51,9.11,-0.96,35.04,,35.11,34.97,34.9099,369,4.7E-4,0,0,0,0
|
||||
1208:383:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7007:384:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7509:237:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7012:360:2,3589,4357,4099,91.46,27.66,0.47,29.31,25.82,3.49,1.46,34.22,,34.6,33.91,34.6926,304,0,0,0,0,0
|
||||
7008:455:3,1523,2841,2032,373.74,28.16,0.54,30.93,26.11,4.82,2.31,32.62,,33.21,31.66,34.6493,325,0,0,0,0,0
|
||||
7806:114:4,0,600,369,179.81,-1.79,0,-1.54,-1.79,0.25,,30.45,,31.36,28.8,,169,0.88,0.95,0.78,0.84,0.94
|
||||
3000:215:4,1333,3759,3360,393.52,26.43,0.45,29.62,22.16,7.46,2.46,34.34,,35.53,33.29,34.8958,701,0,0,0,0,0
|
||||
5708:466:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3114:123:1,0,163,10,21.79,26.99,0.39,29.59,23.8,5.79,26.99,34.93,,35.58,34.15,34.8772,547,0,0,0,0,0
|
||||
5213:392:3,4125,4339,4197,33.44,21.53,0.44,26.26,17.8,8.46,1.49,35.37,,35.64,34.99,34.6944,136,0,0,0,0,0
|
||||
3608:229:2,3914,4276,4089,63.4,-1,0.1,1.37,-1.79,3.16,-0.26,33.81,,34.18,33.61,34.6651,304,0.33,0.05,0.64,0.61,0.01
|
||||
3005:114:2,4168,4777,4590,79.03,28.22,0.23,30.76,25.35,5.41,1.34,35.33,,35.48,35.14,34.7173,376,0,0,0,0,0
|
||||
1616:228:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7611:495:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7215:218:4,819,4520,2642,1134.08,25.38,0.3,27.73,23.36,4.37,1.72,35,,35.11,34.84,34.6492,227,0,0,0,0,0
|
||||
7213:384:2,3825,4712,4419,180.49,20.31,0.41,23.63,17.74,5.89,1.56,34.79,,35.13,34.65,34.6861,229,0,0,0,0,0
|
||||
1707:350:1,31,185,80,46.54,-1.67,0.13,0.64,-1.79,2.43,-1.34,29.53,,31.29,26.14,34.1963,521,0.69,0.95,0.44,0.39,0.96
|
||||
3512:123:2,4065,4637,4319,121.94,4.79,0.29,7.48,2.46,5.02,0.18,33.94,,34.08,33.8,34.6884,293,9.667e-,0,0,0,0
|
||||
5306:475:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3014:353:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1317:110:1,5391,5686,5527,54.8,21.65,0.43,27.17,16.48,10.69,1.5,34.78,,34.99,34.56,34.6963,324,0,0,0,0,0
|
||||
7500:496:3,140,1029,372,199.17,10.06,0.23,13.8,7.6,6.2,8.53,35.22,,35.27,35.18,35.3121,619,0,0,0,0,0
|
||||
3613:489:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5015:489:2,3549,5818,4716,610.91,29.02,0.38,30.11,27.67,2.44,1.26,35.51,,35.76,35.19,34.7055,279,0,0,0,0,0
|
||||
1400:248:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1003:144:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1700:476:3,1560,2640,2125,197.33,0.22,0.91,4.57,-1.79,6.36,-0.97,34.58,,34.9,34.24,34.9096,484,0.00157,0.00333,0,0,0
|
||||
1101:360:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3710:238:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1109:219:2,0,114,59,32.51,28.95,0.27,30.98,27.11,3.87,28.55,31.6,,32.61,29.1,32.7094,828,0,0,0,0,0
|
||||
3005:206:3,4431,5008,4648,87.6,28.48,0.25,30.77,26.25,4.52,1.35,35.33,,35.49,35.07,34.7162,357,0,0,0,0,0
|
||||
7514:475:1,3730,4019,3853,41.42,7.96,0.43,15.67,3.7,11.97,1.47,32.35,,32.65,31.8,34.696,438,4.9E-4,0,0,0,0
|
||||
5304:475:2,5086,5177,5122,20.48,17.57,0.33,22.38,13.7,8.68,0.22,35.5,,35.89,35.12,34.6691,380,0,0,0,0,0
|
||||
3512:495:1,4615,4673,4634,13.29,1.11,0.26,4.12,-1.72,5.84,-0.2,33.92,,34.08,33.8,34.6847,215,4.0E-5,0,0,0,0
|
||||
5606:499:2,0,541,207,120.54,-1.76,0.07,-0.43,-1.79,1.36,-0.06,32.06,,32.4,31.54,34.4431,342,0.6,0.33,0.65,0.71,0.69
|
||||
3717:457:4,475,623,513,42.39,-1.79,0.01,-1.63,-1.79,0.16,-0.06,34.32,,34.5,34.24,34.7085,716,0.56,0.66,0.83,0.7,0.02
|
||||
3511:374:1,4512,4614,4550,15.01,1.71,0.3,4.44,-1.1,5.54,-0.11,33.95,,34.03,33.85,34.6796,210,9.667e-,0,0,0,0
|
||||
7406:495:4,197,369,300,44.07,4.47,0.87,15.02,-1.79,16.81,,29.5,,30.96,27.95,,182,0.1,0.11,0,0.01,0.27
|
||||
7511:465:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3107:103:3,4647,5465,5120,148.99,27.55,0.26,29.95,24.84,5.11,1.42,34.57,,35.06,34.12,34.715,273,0,0,0,0,0
|
||||
3317:495:3,0,27,13,9.05,15.9,0.48,20.66,12.53,8.13,15.19,35,,35.24,34.81,34.9984,101,0,0,0,0,0
|
||||
5806:468:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3312:144:2,8,3740,1665,1441.75,17.63,0.34,21.02,14.85,6.17,2.51,35.75,,35.95,35.58,34.6496,557,0,0,0,0,0
|
||||
1202:360:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3801:351:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5505:371:3,2999,4241,3957,262.49,1.72,0.43,5.13,-1.51,6.64,0.03,33.99,,34.18,33.93,34.6731,265,0.01,0,0.03,0.01,0
|
||||
5509:216:4,4492,4979,4686,82.95,7.16,0.29,10.07,4.95,5.12,0.71,34.17,,34.22,34.11,34.7095,237,0,0,0,0,0
|
||||
1109:381:4,1921,2197,2041,49.84,28.08,0.3,30.62,24.75,5.87,2.69,30.67,,32.45,27.11,34.8055,701,0,0,0,0,0
|
||||
3715:476:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5706:390:1,1,1,1,0,-1.79,0,-1.78,-1.79,0.01,-1.38,34.49,,34.79,33.9,34.4578,0,1.5,1.5,1.5,1.5,1.5
|
||||
3305:206:4,3639,5326,4596,418.01,21.2,0.21,25.3,18,7.3,0.96,35.51,,35.6,35.4,34.7139,203,0,0,0,0,0
|
||||
5805:392:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7200:226:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3201:111:2,1142,2372,1695,307.26,18.2,0.34,22.52,15.27,7.25,3.33,35.29,,35.41,35.18,34.8833,180,0,0,0,0,0
|
||||
7003:372:4,2569,5496,4368,560.13,27.31,0.27,28.93,24.91,4.02,2.39,35.85,,36.12,35.49,34.9086,374,0,0,0,0,0
|
||||
3317:111:3,2672,4221,3383,339.74,19.89,0.42,23.91,17.04,6.87,1.86,35.79,,35.98,35.71,34.6866,321,0,0,0,0,0
|
||||
1313:373:2,300,1902,1376,307.88,17.07,0.58,27.99,9.06,18.93,0.16,33.88,,34.34,33,34.0637,525,0,0,0,0,0
|
||||
5015:496:4,1828,5706,5026,962.02,28.95,0.37,30.13,27.51,2.62,1.29,35.56,,35.79,35.19,34.7062,238,0,0,0,0,0
|
||||
5012:468:3,4236,4770,4565,101.81,26.93,0.53,29.99,24.99,5,1.46,35.52,,35.76,35.27,34.694,311,0,0,0,0,0
|
||||
5408:478:1,3831,4264,4081,90.62,8.82,0.35,11.9,6.3,5.6,0.89,33.96,,34.08,33.7,34.7117,226,0,0,0,0,0
|
||||
3206:456:2,3674,4807,4145,218.76,23.36,0.29,27.46,20.13,7.33,1.56,35.43,,35.56,35.26,34.7224,184,0,0,0,0,0
|
||||
1807:239:1,2630,3163,2925,147.72,-1.79,0,-1.78,-1.79,0.01,-0.78,31.19,,32.81,27.81,34.9295,0,0.93,0.98,0.89,0.87,0.96
|
||||
5608:130:2,4406,4617,4522,59.01,1.2,0.46,5.31,-1.39,6.7,0.46,33.89,,33.98,33.71,34.6962,170,0.00688,0,0.01,0.00666,0
|
||||
7209:458:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7515:235:1,3936,4506,4302,105.49,7.16,0.4,13.88,3.18,10.7,1.51,32.55,,32.8,31.49,34.6837,491,6.7E-4,0,0,0,0
|
||||
3406:475:3,1256,2363,1969,270.64,4.79,0.36,8.43,2.49,5.94,1.7,33.86,,34.03,33.72,34.722,297,0,0,0,0,0
|
||||
1411:237:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1303:381:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3316:350:1,2366,4360,3305,506.59,19.16,0.38,24.43,15.73,8.7,1.28,35.7,,35.86,35.59,34.7234,374,0,0,0,0,0
|
||||
3417:132:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7205:363:4,4699,6127,5466,334.74,25.31,0.2,28.84,22.24,6.6,2.11,36.98,,37.16,36.85,34.854,197,0,0,0,0,0
|
||||
5313:384:3,4921,5181,5027,52.25,15.12,0.35,19.63,11.63,8,1.26,34.41,,34.55,34.28,34.7122,262,0,0,0,0,0
|
||||
5417:248:1,411,1060,665,207.1,12.63,0.49,17.62,9.14,8.48,5.83,34.59,,34.74,34.26,34.3562,797,0,0,0,0,0
|
||||
5804:207:3,0,1,1,0,-1.79,0,-1.78,-1.79,0.01,,34.5,,34.77,34.06,,106,1.5,1.5,1.5,1.5,1.5
|
||||
7401:111:4,2738,4691,3679,499,16.44,0.34,20.57,13.05,7.52,2.63,35.81,,35.89,35.7,34.9243,541,0,0,0,0,0
|
||||
3312:100:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1704:134:1,308,363,333,11.13,0.78,0.54,7.11,-1.79,8.9,-0.88,34.68,,34.84,34.47,34.9043,421,0.04,0.12,0.01,0,0.02
|
||||
7306:102:1,4584,5254,5003,128.8,23.88,0.22,28.88,19.53,9.35,2.24,36.62,,36.72,36.47,34.8884,252,0,0,0,0,0
|
||||
1315:465:3,5619,5801,5714,46.45,18.71,0.6,27.24,12.16,15.08,1.55,34.46,,34.64,34.26,34.693,424,0,0,0,0,0
|
||||
5417:394:3,5248,5536,5351,53.39,10.28,0.4,14.15,7.32,6.83,1.21,34.45,,34.71,34.34,34.7159,383,0,0,0,0,0
|
||||
5617:468:2,2942,3608,3293,209.01,-1.13,0.15,2.22,-1.79,4.01,0.09,34.02,,34.2,33.76,34.6875,261,0.34,0.04,0.6,0.66,0.05
|
||||
1012:362:4,326,4077,2526,1093.78,28.86,0.12,30.1,27.25,2.85,3.58,33.88,,34.29,33.36,34.5877,616,0,0,0,0,0
|
||||
1014:238:4,3404,5093,4312,372.23,29.41,0.22,30.24,28.21,2.03,1.53,34.38,,34.77,34.09,34.6879,247,0,0,0,0,0
|
||||
3708:373:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1407:486:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7109:374:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5109:468:3,3645,4184,3924,121.58,22.85,0.34,25.17,20.54,4.63,1.83,35.89,,36.2,35.58,34.6884,256,0,0,0,0,0
|
||||
3408:216:4,2439,2964,2707,95.29,12.37,0.33,15.67,10,5.67,2,34.78,,34.99,34.57,34.7453,389,0,0,0,0,0
|
||||
7113:374:4,4989,5295,5141,64.43,24.61,0.42,27.21,21.73,5.48,1.45,34.46,,34.72,34.18,34.6938,247,0,0,0,0,0
|
||||
7510:495:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3510:392:2,4090,4586,4384,64.91,0.02,0.29,2.8,-1.79,4.59,-0.15,33.95,,34.08,33.81,34.6813,219,0.02,0,0.01,0.06,0
|
||||
1817:488:3,1387,3509,2297,642.94,-1.79,0,-1.78,-1.79,0.01,-0.52,31.15,,31.74,30.65,34.951,0,1,1,1,1,1
|
||||
1207:353:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5512:206:4,3797,4078,3933,51.68,7.98,0.42,11.7,6.23,5.47,1.4,34.33,,34.41,34.2,34.7207,319,0,0,0,0,0
|
||||
1804:476:1,2846,3866,3433,308.99,-1.79,0,-1.78,-1.79,0.01,-0.6,31.95,,32.67,31.28,34.9552,0,0.94,0.98,0.93,0.9,0.97
|
|
@ -0,0 +1,100 @@
|
|||
3214:370:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1514:228:3,1080,1320,1217,49.45,3.95,0.46,14.12,-1.79,15.91,2.3,32.66,,32.95,32.3,34.4143,572,0.1,0.21,0,0,0.2
|
||||
3302:459:4,4485,4698,4627,48.74,20.55,0.28,24,17.58,6.42,1.21,35.47,,35.52,35.35,34.7433,635,0,0,0,0,0
|
||||
5511:245:2,3156,3347,3278,32.85,6.24,0.49,9.43,4.32,5.11,1.29,34.17,,34.25,34.06,34.7168,283,0,0,0,0,0
|
||||
1007:456:4,2277,2607,2441,75.86,28.6,0.3,30.92,27.34,3.58,2.06,34.67,,35.43,33.71,34.7468,697,0,0,0,0,0
|
||||
5006:134:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1602:238:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3102:393:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3307:102:2,3521,4511,3866,182.68,20.17,0.3,24.72,16.23,8.49,1.12,35.77,,35.98,35.67,34.7112,170,0,0,0,0,0
|
||||
5716:248:4,3280,3498,3417,51.34,-1.79,0,-1.78,-1.79,0.01,0.31,34,,34.31,33.79,34.7005,388,0.75,0.81,0.93,0.91,0.39
|
||||
3706:111:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3100:228:4,4469,4750,4598,77.81,23.32,0.47,28.18,18.91,9.27,2.39,35.9,,36.37,34.76,34.8874,662,0,0,0,0,0
|
||||
3802:142:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7217:394:2,5097,5464,5317,67.82,22.27,0.5,27.24,17.19,10.05,1.55,35.1,,35.34,34.93,34.6917,267,0,0,0,0,0
|
||||
7115:458:3,4413,6028,5527,238.07,26.16,0.35,27.89,24.23,3.66,1.43,34.62,,34.96,34.44,34.6986,203,0,0,0,0,0
|
||||
3115:468:1,2646,3449,3112,197.07,27.13,0.37,29.63,24.39,5.24,1.88,35.07,,35.28,34.82,34.698,253,0,0,0,0,0
|
||||
1810:235:3,2370,3650,3427,342.62,-1.79,0,-1.78,-1.79,0.01,-0.71,30.63,,32.43,28.69,34.939,0,0.93,0.98,0.89,0.88,0.97
|
||||
3815:351:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7512:458:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5605:218:1,570,5146,2644,1252.42,-0.53,0.3,2.35,-1.79,4.14,0.43,33.88,,34.04,33.61,34.6985,220,0.05,0.00333,0.13,0.08,0
|
||||
1603:133:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1110:465:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5005:238:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3711:114:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1600:104:1,271,304,288,6.96,9.48,0.39,17.71,5.12,12.59,6.97,33.4,,34.06,32.13,35.1901,862,0.01,0.02,0,0,0.03
|
||||
7111:468:1,3034,4116,3825,202.95,25.98,0.31,28.57,23.68,4.89,1.5,34.17,,34.44,33.81,34.6885,332,0,0,0,0,0
|
||||
5313:134:4,4413,4800,4604,87.77,18.5,0.39,23.68,14.94,8.74,1.3,34.99,,35.26,34.76,34.7075,179,0,0,0,0,0
|
||||
7810:363:1,1596,2076,1832,188.49,-1.79,0,-1.78,-1.79,0.01,-0.4,30.94,,31.19,30.55,34.9299,0,0.97,0.99,0.96,0.95,0.99
|
||||
1717:352:1,97,180,138,22.07,-1.79,0,-1.76,-1.79,0.03,-1.04,29.35,,30.13,28.53,33.4049,0,0.92,0.97,0.84,0.87,0.97
|
||||
3404:382:3,3887,4494,4191,162.59,4.78,0.36,7.19,2.47,4.72,0.43,33.9,,34.12,33.77,34.651,322,8.25,0,0,0,0
|
||||
7515:476:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1709:123:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5205:114:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7006:112:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3513:487:1,4294,4692,4475,90.74,1.95,0.28,4.89,-0.32,5.21,-0.05,33.82,,33.91,33.72,34.6773,206,1.3E-4,0,0,0,0
|
||||
3102:370:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5613:247:1,4237,4904,4573,173.63,-0.9,0.42,2.01,-1.79,3.8,0.24,33.92,,34.07,33.63,34.7061,165,0.2,0,0.21,0.51,0.06
|
||||
3517:352:2,5068,5548,5372,62.83,6.65,0.34,9.58,4.95,4.63,0.96,34.14,,34.39,33.95,34.707,287,0,0,0,0,0
|
||||
5201:103:2,2807,4255,3603,327.26,23.47,0.35,26.85,20.99,5.86,2.23,36.64,,36.79,36.46,34.8601,155,0,0,0,0,0
|
||||
3710:457:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7406:350:4,0,131,21,29.77,6.73,0.33,18.93,-1.54,20.47,4.47,30.64,,31.26,29.89,30.8745,130,0.06,0.13,0,0.00487,0.13
|
||||
1602:382:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3208:392:3,4032,4337,4168,62.46,20.3,0.31,24.85,16.45,8.4,1.36,35.78,,36.03,35.67,34.7223,166,0,0,0,0,0
|
||||
1004:382:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1406:372:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3504:102:2,3980,4204,4075,52.37,3.06,0.28,5.55,1.2,4.35,0.2,33.95,,34.07,33.87,34.6437,348,2.667e-,0,0,0,0
|
||||
1316:124:4,6183,6290,6262,15.09,21.37,0.5,27.11,16.29,10.82,,34.67,,34.85,34.54,,376,0,0,0,0,0
|
||||
1603:487:3,0,121,68,30.23,3.98,0.6,10.49,-1.73,12.22,3.01,34.93,,35.2,34.75,34.6867,633,0.01,0.02,0.01,0.02,0.02
|
||||
3717:497:2,1,1,1,0,-1.79,0,-1.78,-1.79,0.01,-1.45,34.31,,34.54,33.98,34.3521,661,1.5,1.5,1.5,1.5,1.5
|
||||
3111:380:2,4117,5047,4532,218.35,26.05,0.43,29.54,23.3,6.24,1.18,34.79,,35.01,34.6,34.7135,255,0,0,0,0,0
|
||||
7503:228:2,2978,3873,3569,175.58,8.44,0.66,14.13,4.87,9.26,2.64,34.71,,34.9,34.44,34.9337,629,0,0,0,0,0
|
||||
3312:237:2,3,862,344,269.72,17.86,0.29,21.21,14.9,6.31,11.84,35.81,,36.04,35.56,35.1271,622,0,0,0,0,0
|
||||
1604:100:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5805:207:1,1,1,1,0,-1.79,0,-1.78,-1.79,0.01,-1.3,34.64,,34.92,34.24,34.6741,0,1.5,1.5,1.5,1.5,1.5
|
||||
3808:486:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1113:111:4,5468,6222,5905,126.52,28.77,0.26,30.48,26.93,3.55,,34.21,,34.43,34.01,,194,0,0,0,0,0
|
||||
5504:459:4,3503,4373,3978,241.42,3.39,0.47,6.6,-0.19,6.79,0.32,33.99,,34.09,33.86,34.6805,311,6.833e-,0,0,0,0
|
||||
3015:478:1,0,2301,880,817.09,29.26,0.34,30.5,27.3,3.2,4.84,34.63,,35.06,34.22,34.5298,392,0,0,0,0,0
|
||||
7001:487:4,1974,4794,4251,503.36,27.47,0.34,29.33,24.24,5.09,2.3,35.12,,35.77,34.45,34.8818,548,0,0,0,0,0
|
||||
1202:469:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3809:143:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1303:123:3,1226,1584,1385,89.6,21.98,0.31,28.4,16.09,12.31,13.63,39.09,,39.29,38.84,38.7163,317,0,0,0,0,0
|
||||
5406:102:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5116:228:4,5100,5258,5181,27.52,28.82,0.29,30.09,27.09,3,1.09,35.3,,35.76,34.9,34.7102,207,0,0,0,0,0
|
||||
7305:380:2,5152,5443,5393,34.25,21.41,0.25,27.56,17.45,10.11,2.27,36.15,,36.31,35.84,34.8778,374,0,0,0,0,0
|
||||
3709:226:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1808:133:3,3273,3484,3392,55.93,-1.79,0,-1.78,-1.79,0.01,-0.7,30.72,,32.6,27.39,34.9412,0,0.93,0.98,0.89,0.88,0.96
|
||||
7807:248:3,1171,1276,1199,25.78,-1.79,0,-1.78,-1.79,0.01,-0.19,30.52,,31.41,29.24,34.9273,0,0.98,0.99,0.96,0.97,0.99
|
||||
7710:225:3,0,44,11,13.03,-1.79,0.02,-1.29,-1.79,0.5,-0.84,30.95,,37.68,27.2,31.0727,49,0.82,0.91,0.69,0.79,0.89
|
||||
7312:371:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5212:122:1,3115,3815,3527,187.11,25.03,0.25,27.63,22.24,5.39,1.7,36.44,,36.68,36.14,34.6819,127,0,0,0,0,0
|
||||
5410:465:2,3154,3727,3575,83.87,9.48,0.32,13.08,6.87,6.21,1.35,34.12,,34.22,34.02,34.7125,245,0,0,0,0,0
|
||||
3610:372:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3010:103:2,0,64,10,9.18,29.1,0.35,31.21,27.1,4.11,29.11,29.87,,31.57,27.72,30.2693,183,0,0,0,0,0
|
||||
3204:144:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3109:487:3,5178,5741,5503,75.15,24.94,0.38,27.5,22.65,4.85,1.17,34.71,,34.99,34.53,34.7109,218,0,0,0,0,0
|
||||
5416:218:3,4236,4744,4580,91.81,14.1,0.54,19.23,10.43,8.8,0.89,34.84,,34.91,34.66,34.706,371,0,0,0,0,0
|
||||
3217:218:1,3375,4010,3710,141.95,25.18,0.39,28.43,21.84,6.59,1.85,35.39,,35.59,35.19,34.6822,301,0,0,0,0,0
|
||||
5706:110:2,0,37,19,9.76,-1.79,0,-1.78,-1.79,0.01,-1.62,34.16,,34.61,33.2,34.2117,210,0.88,0.89,0.89,0.87,0.88
|
||||
7708:110:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5107:225:2,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
7015:140:1,4730,5183,5003,78.85,27.81,0.64,29.86,24.94,4.92,1.43,34.81,,34.88,34.71,34.695,357,0,0,0,0,0
|
||||
3009:477:1,4152,5179,4685,222.74,28.49,0.38,30.45,25.89,4.56,1.17,34.09,,34.38,33.62,34.7137,274,0,0,0,0,0
|
||||
3414:478:4,1057,1673,1340,169.31,10.41,0.43,13.23,8.46,4.77,3.29,34.61,,34.8,34.36,34.429,393,0,0,0,0,0
|
||||
7200:142:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5314:364:1,4516,5384,4890,166.04,16.27,0.32,21.4,13,8.4,1.2,34.74,,34.87,34.57,34.7034,246,0,0,0,0,0
|
||||
7306:390:1,4322,5333,5132,137.96,21.54,0.37,27.23,16.05,11.18,2.28,35.67,,36.09,35.35,34.8922,495,0,0,0,0,0
|
||||
5700:390:3,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
3106:485:3,2042,3309,2699,250.96,25.62,0.28,28.86,22.75,6.11,1.86,34.85,,35.16,34.67,34.7201,203,0,0,0,0,0
|
||||
5707:371:4,1,1,1,0,-1.79,0,-1.78,-1.79,0.01,-1.7,33.9,,34.25,33.5,33.4427,0,1.5,1.5,1.5,1.5,1.5
|
||||
7602:123:2,1285,1531,1359,56.7,8.32,0.32,12.4,5.81,6.59,3.78,35.25,,35.33,35.14,34.9939,441,0,0,0,0,0
|
||||
3712:390:1,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
1412:372:4,0,0,0,,,,,,,,,,,,,0,,,,,
|
||||
5700:217:2,0,103,43,29.45,-1.78,0.01,-1.55,-1.79,0.24,-1.72,34.11,,34.56,33.45,34.2757,187,1.5,1.5,1.5,1.5,1.5
|
||||
1616:102:1,0,69,55,17.46,2.82,0.37,12.45,-1.79,14.24,0.41,32.36,,33,31.51,32.7001,908,0.34,0.53,0.03,0.08,0.7
|
||||
7501:361:2,2571,2809,2668,54.47,11.33,0.26,15.48,9.1,6.38,3.08,35.34,,35.42,35.27,34.9611,501,0,0,0,0,0
|
||||
5413:495:4,4357,4747,4546,92.09,8.74,0.44,12.57,6.41,6.16,1.28,34.33,,34.51,34.19,34.7173,281,0,0,0,0,0
|
||||
1007:485:1,1563,2842,2458,320.42,28.53,0.29,31.05,26.28,4.77,2.07,34.54,,35.09,33.44,34.7277,907,0,0,0,0,0
|
||||
7114:229:2,5187,5440,5317,54.71,26.63,0.34,28.64,24.51,4.13,1.47,34.36,,34.68,34.04,34.6959,248,0,0,0,0,0
|
||||
7414:101:3,4582,4876,4718,53.09,14.79,0.75,21.34,9.31,12.03,1.54,33.32,,33.43,33.06,34.6921,430,0,0,0,0,0
|
|
@ -0,0 +1,44 @@
|
|||
0 [main] INFO org.gcube.common.scope.impl.ScopeProviderScanner - using scope provider org.gcube.common.scope.impl.DefaultScopeProvider@685e95ae
|
||||
633 [main] INFO org.gcube.common.scan.DefaultScanner - matched 13 resources from 62 urls in 313 ms
|
||||
653 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/d4science.servicemap
|
||||
682 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/vo1.servicemap
|
||||
683 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/openbio.servicemap
|
||||
685 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/cnr.servicemap
|
||||
687 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/testing.servicemap
|
||||
689 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcube.servicemap
|
||||
690 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/farm.servicemap
|
||||
692 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/isti.servicemap
|
||||
694 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcubeapps.servicemap
|
||||
696 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/ecosystem.servicemap
|
||||
697 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/securevo.servicemap
|
||||
699 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devsec.servicemap
|
||||
701 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devnext.servicemap
|
||||
879 [main] INFO org.gcube.common.clients.stubs.jaxws.StubFactory - fetching wsdl for XQueryAccessService at http://dlib01.isti.cnr.it:8080/wsrf/services/gcube/informationsystem/collector/XQueryAccess?wsdl
|
||||
1420 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executing query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/RuntimeResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/Category/text() eq 'Database') return $resource
|
||||
1497 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ScopeHandler@1c7c0f04
|
||||
1498 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.TargetServiceHandler@16bc6a12
|
||||
1499 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ClientInfoHandler@2f1c7c32
|
||||
1500 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.LegacyWSAddressingHandler@281de7b2
|
||||
1624 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executed query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/RuntimeResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/Category/text() eq 'Database') return $resource in 204 ms
|
||||
0 [main] INFO org.gcube.common.scope.impl.ScopeProviderScanner - using scope provider org.gcube.common.scope.impl.DefaultScopeProvider@3c22d5b5
|
||||
508 [main] INFO org.gcube.common.scan.DefaultScanner - matched 13 resources from 62 urls in 314 ms
|
||||
529 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/d4science.servicemap
|
||||
557 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/vo1.servicemap
|
||||
559 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/openbio.servicemap
|
||||
560 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/cnr.servicemap
|
||||
562 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/testing.servicemap
|
||||
564 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcube.servicemap
|
||||
566 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/farm.servicemap
|
||||
568 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/isti.servicemap
|
||||
570 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/gcubeapps.servicemap
|
||||
572 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/ecosystem.servicemap
|
||||
574 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/securevo.servicemap
|
||||
576 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devsec.servicemap
|
||||
578 [main] INFO org.gcube.common.scope.impl.ServiceMapScanner - loading jar:file:/home/loredana/.m2/repository/org/gcube/core/common-scope-maps/1.0.2-SNAPSHOT/common-scope-maps-1.0.2-SNAPSHOT.jar!/devnext.servicemap
|
||||
717 [main] INFO org.gcube.common.clients.stubs.jaxws.StubFactory - fetching wsdl for XQueryAccessService at http://dlib01.isti.cnr.it:8080/wsrf/services/gcube/informationsystem/collector/XQueryAccess?wsdl
|
||||
892 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executing query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/RuntimeResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/Category/text() eq 'Database') return $resource
|
||||
926 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ScopeHandler@3d48392b
|
||||
927 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.TargetServiceHandler@657189ad
|
||||
928 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.ClientInfoHandler@45f2a7e9
|
||||
929 [main] INFO org.gcube.common.clients.stubs.jaxws.handlers.HandlerRegistry - loaded call handler org.gcube.common.clients.stubs.jaxws.handlers.LegacyWSAddressingHandler@5eb85400
|
||||
1022 [main] INFO org.gcube.resources.discovery.icclient.ICClient - executed query declare namespace ic = 'http://gcube-system.org/namespaces/informationsystem/registry'; for $resource in collection('/db/Profiles/RuntimeResource')//Document/Data/ic:Profile/Resource where ($resource/Profile/Category/text() eq 'Database') return $resource in 130 ms
|
|
@ -0,0 +1,147 @@
|
|||
<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.dataanalysis</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
|
||||
<parent>
|
||||
<groupId>org.gcube.tools</groupId>
|
||||
<artifactId>maven-parent</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.gcube.contentmanagement</groupId>
|
||||
<artifactId>storage-manager-core</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||
<!-- <scope>provided</scope> -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-scope-maps</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.resources.discovery</groupId>
|
||||
<artifactId>ic-client</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.contentmanagement</groupId>
|
||||
<artifactId>storage-manager-wrapper</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.11</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-scope</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 3.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.resources</groupId>
|
||||
<artifactId>common-gcore-resources</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-encryption</artifactId>
|
||||
<version>[1.0.1-SNAPSHOT,3.0.0-SNAPSHOT)</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.gcube.dataanalysis</groupId>
|
||||
<artifactId>ecological-engine</artifactId>
|
||||
<version>[1.7.2-SNAPSHOT,1.8.0-SNAPSHOT)</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<groupId>postgresql</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency> -->
|
||||
<!-- <groupId>org.gcube.dataanalysis</groupId> -->
|
||||
<!-- <artifactId>ecological-engine</artifactId> -->
|
||||
<!-- <version>1.7.3-SNAPSHOT</version> -->
|
||||
<!-- </dependency> -->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector</artifactId>
|
||||
<version>5.1.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>9.1-901-1.jdbc4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.resources.discovery</groupId>
|
||||
<artifactId>discovery-client</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
||||
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>rapidminer-custom</groupId>
|
||||
<artifactId>swissql-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!--<dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId>
|
||||
<version>1.0.2</version> </dependency> -->
|
||||
<!-- <dependency> -->
|
||||
<!-- <groupId>org.slf4j</groupId> -->
|
||||
<!-- <artifactId>slf4j-log4j12</artifactId> -->
|
||||
<!-- <version>1.6.4</version> -->
|
||||
<!-- </dependency> -->
|
||||
</dependencies>
|
||||
<repositories>
|
||||
|
||||
<repository>
|
||||
<id>dnet-deps</id>
|
||||
<name>dnet-deps</name>
|
||||
<url>http://maven.research-infrastructures.eu/nexus/content/repositories/dnet-deps//</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<configuration>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||
</descriptorRefs>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase> <!-- bind to the packaging phase -->
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<artifactId>databases-resources-manager</artifactId>
|
||||
</project>
|
|
@ -0,0 +1,37 @@
|
|||
package org.gcube.dataanalysis.databases.access;
|
||||
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||
import org.gcube.resources.discovery.client.api.DiscoveryException;
|
||||
import org.gcube.resources.discovery.client.api.InvalidResultException;
|
||||
import org.gcube.resources.discovery.client.queries.impl.XQuery;
|
||||
|
||||
|
||||
/** Class that allows to discover databases submitting a query to the IS.
|
||||
* It retrieves a list of DBResource object */
|
||||
public class DatabasesDiscoverer extends ResourceDiscoverer{
|
||||
|
||||
public DatabasesDiscoverer(){
|
||||
|
||||
|
||||
}
|
||||
|
||||
/** Method that performs the discovery process of database resources */
|
||||
public List<DBResource> discover() throws IllegalStateException, DiscoveryException, InvalidResultException{
|
||||
|
||||
XQuery query = queryFor(ServiceEndpoint.class);
|
||||
query.addCondition("$resource/Profile/Category/text() eq 'Database'");
|
||||
|
||||
DiscoveryClient<DBResource> discovery = clientFor(DBResource.class);
|
||||
List<DBResource> resources = discovery.submit(query);
|
||||
|
||||
return resources;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package org.gcube.dataanalysis.databases.access;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
|
||||
/** Class that allows to discover generic resources submitting a query to the IS.
|
||||
* It retrieves a list of DBResource objects. */
|
||||
public abstract class ResourceDiscoverer {
|
||||
|
||||
|
||||
public abstract List<DBResource> discover();
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
package org.gcube.dataanalysis.databases.accessold;
|
||||
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||
import org.gcube.resources.discovery.client.queries.impl.XQuery;
|
||||
|
||||
/**
|
||||
* Class that, allowing to set a scope and to submit a query to the IS, recover
|
||||
* a list of url for each DBResource object
|
||||
*/
|
||||
|
||||
public class AddressesDiscoverer {
|
||||
|
||||
/** Method to set the scope */
|
||||
public void setScope(String scope) {
|
||||
|
||||
ScopeProvider.instance.set(scope);
|
||||
|
||||
}
|
||||
|
||||
/** Method to recover the url's list */
|
||||
public List<String> retrieveAddress(String Category) {
|
||||
|
||||
List<String> addresses = new ArrayList<String>();
|
||||
|
||||
XQuery query = queryFor(ServiceEndpoint.class);
|
||||
query.addCondition("$resource/Profile/Category/text() eq '" + Category
|
||||
+ "'");
|
||||
|
||||
DiscoveryClient<DBResource> submitop = clientFor(DBResource.class);
|
||||
List<DBResource> access = submitop.submit(query);
|
||||
|
||||
// System.out.println("size resource: "+access.size());
|
||||
|
||||
int APsize = 0;
|
||||
String address = "";
|
||||
|
||||
for (int i = 0; i < access.size(); i++) {
|
||||
|
||||
APsize = access.get(i).getAccessPoints().size();
|
||||
|
||||
for (int j = 0; j < APsize; j++) {
|
||||
|
||||
address = access.get(i).getAccessPoints().get(j).address();
|
||||
addresses.add(address);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return addresses;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package org.gcube.dataanalysis.databases.accessold;
|
||||
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||
import org.gcube.resources.discovery.client.queries.impl.XQuery;
|
||||
|
||||
|
||||
/** Class that allows to discover databases submitting a query to the IS and given a certain scope.
|
||||
* It retrieves a list of DBResource object */
|
||||
public class DatabasesDiscoverer extends ResourceDiscoverer{
|
||||
|
||||
public DatabasesDiscoverer(){
|
||||
|
||||
|
||||
}
|
||||
|
||||
/** Method that performs the discovery process of database resources */
|
||||
public List<DBResource> discovery(String scope) {
|
||||
|
||||
ScopeProvider.instance.set(scope);
|
||||
|
||||
XQuery query = queryFor(ServiceEndpoint.class);
|
||||
query.addCondition("$resource/Profile/Category/text() eq 'Database'");
|
||||
|
||||
DiscoveryClient<DBResource> discovery = clientFor(DBResource.class);
|
||||
List<DBResource> resources = discovery.submit(query);
|
||||
|
||||
return resources;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package org.gcube.dataanalysis.databases.accessold;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
|
||||
/** Class that allows to discover generic resources submitting a query to the IS and given a certain scope.
|
||||
* It retrieves a list of DBResource objects. */
|
||||
public abstract class ResourceDiscoverer {
|
||||
|
||||
|
||||
public abstract List<DBResource> discovery(String scope);
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package org.gcube.dataanalysis.databases.converter;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
|
||||
import com.adventnet.swissqlapi.SwisSQLAPI;
|
||||
import com.adventnet.swissqlapi.sql.exception.ConvertException;
|
||||
import com.adventnet.swissqlapi.sql.parser.ParseException;
|
||||
|
||||
/**
|
||||
* Class that allows to convert a query specifying a sql dialect by means of a SwisSQL API
|
||||
*/
|
||||
public class SqlDialectConverter {
|
||||
|
||||
private SwisSQLAPI obj;
|
||||
|
||||
// Constructor
|
||||
public SqlDialectConverter(String query) {
|
||||
|
||||
obj = new SwisSQLAPI(query);
|
||||
|
||||
}
|
||||
|
||||
public String convert(int dialect) throws ParseException, ConvertException {
|
||||
|
||||
String queryConverted = null;
|
||||
|
||||
queryConverted = obj.convert(dialect);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In SqlDialectConverter-> query converted: " + queryConverted);
|
||||
|
||||
return queryConverted;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,203 @@
|
|||
package org.gcube.dataanalysis.databases.lexer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
|
||||
/**
|
||||
* Class that allows to filter queries no read-only compliant by means of a
|
||||
* lexical analysis
|
||||
*/
|
||||
public class LexicalAnalyzer {
|
||||
|
||||
private ArrayList<String> BlackList = new ArrayList<String>(); // Keywords'
|
||||
|
||||
// blacklist
|
||||
|
||||
// Method that performs the lexical analysis
|
||||
public boolean analyze(String query) throws Exception {
|
||||
|
||||
boolean NotAllowed = false;
|
||||
|
||||
// building the keywords' blacklist
|
||||
// the following keywords are common for MySQL and PostgreSQL databases.
|
||||
|
||||
BlackList.add("INSERT");
|
||||
BlackList.add("DELETE ");
|
||||
BlackList.add("UPDATE ");
|
||||
BlackList.add("CREATE");
|
||||
BlackList.add("ALTER");
|
||||
BlackList.add("DROP");
|
||||
BlackList.add("GRANT");
|
||||
BlackList.add("REVOKE");
|
||||
BlackList.add("TRUNCATE");
|
||||
|
||||
BlackList.add("DO");
|
||||
BlackList.add("START TRANSACTION");
|
||||
BlackList.add("COMMIT");
|
||||
BlackList.add("BEGIN");
|
||||
BlackList.add("ROLLBACK");
|
||||
BlackList.add("SET");
|
||||
BlackList.add("SAVEPOINT");
|
||||
BlackList.add("RELEASE SAVEPOINT");
|
||||
BlackList.add("LOCK");
|
||||
|
||||
BlackList.add("DECLARE");
|
||||
BlackList.add("PREPARE");
|
||||
BlackList.add("FETCH");
|
||||
// BlackList.add("EXPLAIN");
|
||||
BlackList.add("ANALYZE");
|
||||
BlackList.add("EXECUTE");
|
||||
BlackList.add("SHOW");
|
||||
BlackList.add("RESET");
|
||||
|
||||
String queryParsed = null;
|
||||
|
||||
int NumOfBlackList = BlackList.size();
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"LexicalAnalyzer->blacklist size: " + NumOfBlackList);
|
||||
|
||||
// System.out.println("size blacklist: " + NumOfBlackList);
|
||||
|
||||
// parse the query using the regular expressions
|
||||
queryParsed = LexicalAnalyzer.parseRegularExpressions(query);
|
||||
|
||||
// check if the query contains a word defined in the blacklist
|
||||
NotAllowed = check(queryParsed);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"LexicalAnalyzer->query not allowed: " + NotAllowed);
|
||||
|
||||
if (NotAllowed == true) {
|
||||
|
||||
throw new Exception("Only read-only queries are allowed");
|
||||
|
||||
}
|
||||
|
||||
return NotAllowed;
|
||||
|
||||
}
|
||||
|
||||
// Method that checks if the query contains a word defined in the blacklist
|
||||
public boolean check(String query) {
|
||||
|
||||
boolean NotAllowed = false;
|
||||
|
||||
check_tokens: for (int j = 0; j < BlackList.size(); j++) {
|
||||
|
||||
// System.out.println("BlackList word: " + BlackList.get(j));
|
||||
|
||||
// keyword check with regex regular expression
|
||||
|
||||
String Keyword = BlackList.get(j);
|
||||
|
||||
String regex = ".*\\b" + Keyword.replaceAll(" +", "[ ]\\+")
|
||||
+ "\\b.*";
|
||||
|
||||
if (query.toUpperCase().matches(regex)) {
|
||||
|
||||
NotAllowed = true;
|
||||
|
||||
break check_tokens;
|
||||
|
||||
}
|
||||
|
||||
// if (Keyword.contains(" ")) {
|
||||
//
|
||||
// String[] arrayKeyword = Keyword.split(" ");
|
||||
//
|
||||
// int i;
|
||||
// // boolean notContained = false;
|
||||
//
|
||||
// String Regex = "";
|
||||
// String regexKeyword = regexKeyword = ".*\\b" + arrayKeyword[0]
|
||||
// + "\\s*";
|
||||
// Regex = regexKeyword;
|
||||
//
|
||||
// for (i = 1; i < arrayKeyword.length; i++) {
|
||||
//
|
||||
// if (i == arrayKeyword.length - 1) {
|
||||
//
|
||||
// Regex = Regex + arrayKeyword[i] + "\\b.*";
|
||||
//
|
||||
// } else {
|
||||
//
|
||||
// Regex = Regex + arrayKeyword[i] + "\\s*";
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (query.toUpperCase().matches(Regex)) {
|
||||
//
|
||||
// // notContained = true;
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "LexicalAnalyzer-> : the query contains the word in the blacklist "
|
||||
// + BlackList.get(j));
|
||||
//
|
||||
// NotAllowed = true;
|
||||
//
|
||||
// break check_tokens;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// } else {
|
||||
//
|
||||
// String regexKeyword = ".*\\b" + BlackList.get(j) + "\\b.*";
|
||||
//
|
||||
// if (query.toUpperCase().matches(regexKeyword)) {
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "LexicalAnalyzer-> : the query contains the word in the blacklist "
|
||||
// + BlackList.get(j));
|
||||
//
|
||||
// NotAllowed = true;
|
||||
//
|
||||
// break check_tokens;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
return NotAllowed;
|
||||
|
||||
}
|
||||
|
||||
public ArrayList<String> getBlackList() {
|
||||
|
||||
return BlackList;
|
||||
|
||||
}
|
||||
|
||||
private static String parseRegularExpressions(String phrase) {
|
||||
|
||||
// replacement of the punctuation characters
|
||||
// String todelete = "[\\]\\[!#$%&()*+,./:;<=>?@\\^_{|}~-]";
|
||||
String todelete = "[\\]\\[!#$%&()*+,./:;<=>?@\\^{|}~-]";
|
||||
phrase = phrase.replaceAll(todelete, " ");
|
||||
phrase = phrase.replaceAll("[ ]+", " ");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"LexicalAnalyzer-> : replacing query " + phrase);
|
||||
|
||||
// elimination by means of a replacement of the word enclosed in '',
|
||||
// "",``
|
||||
String apex = "'.*'";
|
||||
phrase = phrase.replaceAll(apex, "");
|
||||
String apex2 = "\".*\"";
|
||||
phrase = phrase.replaceAll(apex2, "");
|
||||
String apex3 = "`.*`";
|
||||
phrase = phrase.replaceAll(apex3, "");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"LexicalAnalyzer-> : parsed string " + phrase);
|
||||
|
||||
return phrase;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package org.gcube.dataanalysis.databases.lexer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
|
||||
/**
|
||||
* Class that allows to filter queries no read-only compliant considering the
|
||||
* MySQL database and by means of a lexical analysis
|
||||
*/
|
||||
|
||||
public class MySQLLexicalAnalyzer extends LexicalAnalyzer {
|
||||
|
||||
|
||||
|
||||
public MySQLLexicalAnalyzer() {
|
||||
|
||||
ArrayList<String> BlackList = new ArrayList<String>(); // Keywords' blacklist
|
||||
BlackList = super.getBlackList();
|
||||
|
||||
updateBlackList(BlackList);
|
||||
|
||||
}
|
||||
|
||||
// update the keywords' blacklist
|
||||
private void updateBlackList(ArrayList<String> BlackList) {
|
||||
|
||||
// Mysql's keywords
|
||||
BlackList.add("RENAME");
|
||||
BlackList.add("REPLACE");
|
||||
BlackList.add("LOAD DATA INFILE");
|
||||
BlackList.add("CALL");
|
||||
BlackList.add("HANDLER");
|
||||
BlackList.add("UNLOCK");
|
||||
BlackList.add("DEALLOCATE PREPARE");
|
||||
BlackList.add("OPEN");
|
||||
BlackList.add("CLOSE");
|
||||
BlackList.add("BACKUP");
|
||||
BlackList.add("CHECK");
|
||||
BlackList.add("CHECKSUM");
|
||||
BlackList.add("OPTIMIZE");
|
||||
BlackList.add("REPAIR");
|
||||
BlackList.add("RESTORE");
|
||||
BlackList.add("CACHE");
|
||||
BlackList.add("FLUSH");
|
||||
BlackList.add("KILL");
|
||||
BlackList.add("LOAD INDEX INTO CACHE");
|
||||
BlackList.add("PURGE BINARY LOGS");
|
||||
// BlackList.add("RESET");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"MySQLLexicalAnalyzer->: blacklist updated");
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package org.gcube.dataanalysis.databases.lexer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
|
||||
/**
|
||||
* Class that allows to filter queries no read-only compliant considering the
|
||||
* Postgres database and by means of a lexical analysis
|
||||
*/
|
||||
public class PostgresLexicalAnalyzer extends LexicalAnalyzer {
|
||||
|
||||
// private ArrayList<String> BlackList = new ArrayList<String>(); // Keywords'
|
||||
|
||||
// blacklist
|
||||
|
||||
public PostgresLexicalAnalyzer() {
|
||||
ArrayList<String> BlackList = new ArrayList<String>(); // Keywords' blacklist
|
||||
BlackList = super.getBlackList();
|
||||
|
||||
updateBlackList(BlackList);
|
||||
|
||||
}
|
||||
|
||||
// update the keywords' blacklist
|
||||
private void updateBlackList(ArrayList<String> BlackList) {
|
||||
|
||||
// Keywords'
|
||||
// blacklist
|
||||
|
||||
BlackList.add("COPY");
|
||||
BlackList.add("COMMENT");
|
||||
BlackList.add("SELECT INTO");
|
||||
BlackList.add("UNLISTEN");
|
||||
BlackList.add("VACUUM");
|
||||
BlackList.add("VALUES");
|
||||
BlackList.add("SECURITY LABEL");
|
||||
BlackList.add("REASSIGN OWNED");
|
||||
BlackList.add("ABORT");
|
||||
BlackList.add("CHECKPOINT");
|
||||
BlackList.add("CLOSE");
|
||||
BlackList.add("CLUSTER");
|
||||
BlackList.add("DEALLOCATE");
|
||||
BlackList.add("DISCARD");
|
||||
BlackList.add("END");
|
||||
BlackList.add("LISTEN");
|
||||
BlackList.add("LOAD");
|
||||
BlackList.add("MOVE");
|
||||
BlackList.add("NOTIFY");
|
||||
BlackList.add("REFRESH MATERIALIZED VIEW");
|
||||
BlackList.add("REINDEX");
|
||||
// BlackList.add("RESET");
|
||||
|
||||
// BlackList.add("SET ROLE");
|
||||
|
||||
// BlackList.add("SET SESSION AUTHORIZATION");
|
||||
|
||||
// BlackList.add("SET TRANSACTION");
|
||||
|
||||
// BlackList.add("SET CONSTRAINTS");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"PostgresLexicalAnalyzer->: blacklist updated");
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,803 @@
|
|||
package org.gcube.dataanalysis.databases.resources;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlElementRef;
|
||||
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlValue;
|
||||
|
||||
import org.gcube.common.encryption.StringEncrypter;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.databases.resources.processing.Normalizer;
|
||||
|
||||
/** Class that describes a resource database considering information specified from the user in a xml file.
|
||||
* Information are retrieved from the xml file Through the JAXB and the relative object is initialized */
|
||||
|
||||
//Database Resource Description class
|
||||
@XmlRootElement(name = "Resource")
|
||||
public class DBResource {
|
||||
|
||||
// Variables
|
||||
private String ResourceName;
|
||||
private String PlatformName;
|
||||
private String PlatformVersion;
|
||||
private String HostedOn;
|
||||
private String Port = null;
|
||||
private String dbguessed = null;
|
||||
|
||||
@XmlElement(name = "ID")
|
||||
private String id;
|
||||
|
||||
@XmlElementRef
|
||||
private Profile profile;
|
||||
|
||||
// Methods
|
||||
public String getID() {
|
||||
|
||||
if (id == null)
|
||||
id = "";
|
||||
|
||||
return id;
|
||||
|
||||
}
|
||||
|
||||
public String getPort() {
|
||||
|
||||
if (Port == null) {
|
||||
|
||||
Port = "";
|
||||
|
||||
}
|
||||
|
||||
return Port;
|
||||
|
||||
}
|
||||
|
||||
public void setPort(String value) {
|
||||
|
||||
Port = value;
|
||||
|
||||
}
|
||||
|
||||
public String getResourceName() {
|
||||
|
||||
ResourceName = this.profile.getname().trim();
|
||||
|
||||
return ResourceName;
|
||||
|
||||
}
|
||||
|
||||
public String getHostedOn() {
|
||||
|
||||
HostedOn = this.profile.getHostedOn();
|
||||
|
||||
return HostedOn;
|
||||
|
||||
}
|
||||
|
||||
public String getPlatformName() {
|
||||
|
||||
PlatformName = this.profile.getPlatformName();
|
||||
|
||||
if (PlatformName.contains(" ")) {
|
||||
|
||||
PlatformName = PlatformName.trim();
|
||||
|
||||
}
|
||||
|
||||
return PlatformName;
|
||||
|
||||
}
|
||||
|
||||
public void setPlatformName(String name) {
|
||||
|
||||
this.profile.platform.name = name;
|
||||
|
||||
}
|
||||
|
||||
public String getPlatformVersion() {
|
||||
|
||||
PlatformVersion = this.profile.getPlatformVersion();
|
||||
|
||||
return PlatformVersion;
|
||||
|
||||
}
|
||||
|
||||
public void setHostedOn(String value) {
|
||||
|
||||
HostedOn = value;
|
||||
|
||||
}
|
||||
|
||||
public String getDBguessed() {
|
||||
|
||||
return dbguessed;
|
||||
|
||||
}
|
||||
|
||||
public void setDBguessed(String name) {
|
||||
|
||||
dbguessed = name;
|
||||
|
||||
}
|
||||
|
||||
public void normalize(int index) throws IOException{
|
||||
|
||||
try {
|
||||
Normalizer.normalize(this, index);
|
||||
} catch (IOException e) {
|
||||
|
||||
// e.printStackTrace();
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<AccessPoint> getAccessPoints() {
|
||||
|
||||
List<AccessPoint> ap = this.profile.accessPoints();
|
||||
|
||||
return ap;
|
||||
|
||||
}
|
||||
|
||||
// Class Profile
|
||||
|
||||
@XmlRootElement(name = "Profile")
|
||||
static class Profile {
|
||||
|
||||
@XmlElement(name = "Name")
|
||||
private String name;
|
||||
|
||||
@XmlElementRef
|
||||
private Platform platform;
|
||||
|
||||
@XmlElementRef
|
||||
private Runtime runtime;
|
||||
|
||||
@XmlElementRef
|
||||
private List<AccessPoint> accessPoints = new ArrayList<AccessPoint>();
|
||||
|
||||
public String getname() {
|
||||
if (name == null)
|
||||
name = "";
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
public List<AccessPoint> accessPoints() {
|
||||
|
||||
return accessPoints;
|
||||
|
||||
}
|
||||
|
||||
public String getHostedOn() {
|
||||
|
||||
return this.runtime.getHostedOn().trim();
|
||||
|
||||
}
|
||||
|
||||
public String getPlatformName() {
|
||||
|
||||
return this.platform.getName();
|
||||
|
||||
}
|
||||
|
||||
public String getPlatformVersion() {
|
||||
|
||||
return this.platform.getVersion();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class Runtime
|
||||
|
||||
@XmlRootElement(name = "RunTime")
|
||||
public static class Runtime {
|
||||
|
||||
@XmlElement(name = "HostedOn")
|
||||
private String hostedOn;
|
||||
|
||||
public String getHostedOn() {
|
||||
|
||||
if (hostedOn == null)
|
||||
hostedOn = "";
|
||||
|
||||
return hostedOn;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class Platform
|
||||
|
||||
@XmlRootElement(name = "Platform")
|
||||
public static class Platform {
|
||||
|
||||
private String version;
|
||||
|
||||
@XmlElement(name = "Name")
|
||||
private String name;
|
||||
|
||||
@XmlElement(name = "Version")
|
||||
private String Version;
|
||||
|
||||
@XmlElement(name = "MinorVersion")
|
||||
private String minorVersion;
|
||||
|
||||
@XmlElement(name = "RevisionVersion")
|
||||
private String revisionVersion;
|
||||
|
||||
public String getVersion() {
|
||||
|
||||
// Version's computation
|
||||
if ((Version == null) || (Version.equals(""))) {
|
||||
|
||||
// Version="8";
|
||||
// minorVersion="4";
|
||||
// revisionVersion="0";
|
||||
|
||||
Version = "";
|
||||
minorVersion = "";
|
||||
revisionVersion = "";
|
||||
|
||||
version = Version + "." + minorVersion + "." + revisionVersion;
|
||||
|
||||
} else {
|
||||
version = Version;
|
||||
|
||||
if ((minorVersion != null) && (!(minorVersion.equals("")))) {
|
||||
|
||||
version = version.concat(".").concat(minorVersion);
|
||||
|
||||
if ((revisionVersion != null)
|
||||
&& (!(revisionVersion.equals("")))) {
|
||||
|
||||
version = version.concat(".").concat(revisionVersion);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return version;
|
||||
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
|
||||
return name;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class AccessPoint
|
||||
|
||||
@XmlRootElement(name = "AccessPoint")
|
||||
public static class AccessPoint {
|
||||
|
||||
private String endpoint;
|
||||
// private String port;
|
||||
private String username;
|
||||
private String password;
|
||||
private String DatabaseName = null;
|
||||
private String Driver = null;
|
||||
private String Dialect = null;
|
||||
private String MaxConnections = null;
|
||||
private String schema = null;
|
||||
private String tableSpaceCount = null;
|
||||
private String tableSpacePrefix = null;
|
||||
|
||||
/* it contains the variables aquamapsWorldTable,aquamapsDataStore */
|
||||
private HashMap<String, String> auxiliaryProperties = new HashMap<String, String>();
|
||||
|
||||
@XmlElementRef
|
||||
private Interface itfce = new Interface();
|
||||
|
||||
@XmlElementRef
|
||||
private AccessData accessData = new AccessData();
|
||||
|
||||
@XmlElementWrapper(name = "Properties")
|
||||
@XmlElementRef
|
||||
private List<Property> properties = new ArrayList<Property>();
|
||||
|
||||
@XmlElement(name = "Description")
|
||||
private String description;
|
||||
|
||||
public String name() {
|
||||
|
||||
return itfce.endpoint().name();
|
||||
}
|
||||
|
||||
public String address() {
|
||||
|
||||
endpoint = itfce.endpoint().address().trim();
|
||||
|
||||
if (endpoint == null)
|
||||
endpoint = "";
|
||||
|
||||
return endpoint;
|
||||
}
|
||||
|
||||
public void setUrl(String value) {
|
||||
|
||||
itfce.endpoint.address = value;
|
||||
endpoint = itfce.endpoint.address.trim();
|
||||
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
|
||||
username = this.accessData.username();
|
||||
|
||||
return username;
|
||||
|
||||
}
|
||||
|
||||
public String getPassword() throws Exception{
|
||||
|
||||
String pwd = this.accessData.password();
|
||||
|
||||
try {
|
||||
password = StringEncrypter.getEncrypter().decrypt(pwd);
|
||||
} catch (Exception e) {
|
||||
|
||||
// e.printStackTrace();
|
||||
throw e;
|
||||
|
||||
}
|
||||
|
||||
return password;
|
||||
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
|
||||
if ((description == null) || (description.equals(""))) {
|
||||
|
||||
description = "jdbc connection url";
|
||||
|
||||
}
|
||||
|
||||
return description;
|
||||
|
||||
}
|
||||
|
||||
public String getDatabaseName() {
|
||||
|
||||
if (properties.size() == 0) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "dbname";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
return DatabaseName = "";
|
||||
|
||||
} else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if (((properties.get(i).name()).toLowerCase()
|
||||
.contains("dbname"))
|
||||
|| (properties.get(i).name()).toLowerCase()
|
||||
.contains("databasename")
|
||||
|| ((properties.get(i).name()).toLowerCase()
|
||||
.contains("database"))) {
|
||||
DatabaseName = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (DatabaseName == null) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "dbname";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
DatabaseName = "";
|
||||
return DatabaseName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return DatabaseName;
|
||||
|
||||
}
|
||||
|
||||
public void setDatabaseName(String value) {
|
||||
|
||||
DatabaseName=value;
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if (((properties.get(i).name()).toLowerCase()
|
||||
.contains("dbname"))
|
||||
|| (properties.get(i).name()).toLowerCase().contains(
|
||||
"databasename")
|
||||
|| ((properties.get(i).name()).toLowerCase()
|
||||
.contains("database"))) {
|
||||
DatabaseName = properties.get(i).setvalue(value);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class DBResource->setting the database's name to value : " + DatabaseName);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getDriver() {
|
||||
|
||||
if (properties.size() == 0) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "driver";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
return Driver = "";
|
||||
|
||||
} else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).toLowerCase().contains(
|
||||
"driver")) {
|
||||
Driver = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (Driver == null) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "driver";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
Driver = "";
|
||||
|
||||
return Driver;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Driver;
|
||||
|
||||
}
|
||||
|
||||
public void SetDriver(String value) {
|
||||
|
||||
// Driver="org"+"."+value+"."+"Driver";
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).toLowerCase().contains("driver")) {
|
||||
Driver = properties.get(i).setvalue(value);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class DBResource->setting the driver's name to value : " + Driver);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getDialect() {
|
||||
|
||||
if (properties.size() == 0) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "dialect";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
return Dialect = "";
|
||||
|
||||
} else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).toLowerCase().contains(
|
||||
"dialect")) {
|
||||
Dialect = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (Dialect == null) {
|
||||
|
||||
Property p = new Property();
|
||||
p.name = "dialect";
|
||||
p.value = "";
|
||||
properties.add(p);
|
||||
|
||||
Dialect = "";
|
||||
|
||||
return Dialect;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Dialect;
|
||||
|
||||
}
|
||||
|
||||
public void SetDialect(String value) {
|
||||
|
||||
// Driver="org"+"."+value+"."+"Driver";
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).toLowerCase()
|
||||
.contains("dialect")) {
|
||||
|
||||
Dialect = properties.get(i).setvalue(value);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class DBResource->Setting the dialect: "
|
||||
+ Dialect);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getMaxConnections() {
|
||||
|
||||
/* Check if the AccessPoint object does not have a Properties section */
|
||||
if (properties.size() == 0) {
|
||||
|
||||
return MaxConnections = "2";
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).equals("maxConnection")) {
|
||||
MaxConnections = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (MaxConnections == null)
|
||||
return MaxConnections = "2";
|
||||
else
|
||||
return MaxConnections;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getSchema() {
|
||||
|
||||
/* Check if the AccessPoint object does not have a Properties section */
|
||||
if (properties.size() == 0)
|
||||
return schema = "public";
|
||||
|
||||
else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
//
|
||||
if ((properties.get(i).name()).equals("schema")) {
|
||||
schema = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (schema == null)
|
||||
return schema = "public";
|
||||
else
|
||||
return schema;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getTableSpaceCount() {
|
||||
|
||||
/* Check if the AccessPoint object does not have a Properties section */
|
||||
if (properties.size() == 0)
|
||||
return tableSpaceCount = "0";
|
||||
|
||||
else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).equals("tableSpaceCount")) {
|
||||
tableSpaceCount = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (tableSpaceCount == null)
|
||||
return tableSpaceCount = "0";
|
||||
else
|
||||
return tableSpaceCount;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String getTableSpacePrefix() {
|
||||
|
||||
/* Check if the AccessPoint object does not have a Properties section */
|
||||
if (properties.size() == 0)
|
||||
return tableSpacePrefix = "";
|
||||
|
||||
else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).equals("tableSpacePrefix")) {
|
||||
tableSpacePrefix = properties.get(i).value();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (tableSpacePrefix == null)
|
||||
return tableSpacePrefix = "";
|
||||
else
|
||||
return tableSpacePrefix;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public HashMap<String, String> getAuxiliaryProperties() {
|
||||
|
||||
String AuxiliaryProperty;
|
||||
|
||||
/* Check if the AccessPoint object does not have a Properties section */
|
||||
if (properties.size() == 0)
|
||||
return auxiliaryProperties;
|
||||
|
||||
else {
|
||||
|
||||
for (int i = 0; i < properties.size(); i++) {
|
||||
|
||||
if ((properties.get(i).name()).equals("aquamapsWorldTable")) {
|
||||
AuxiliaryProperty = properties.get(i).value();
|
||||
|
||||
auxiliaryProperties.put("aquamapsWorldTable",
|
||||
AuxiliaryProperty);
|
||||
|
||||
}
|
||||
|
||||
if ((properties.get(i).name()).equals("aquamapsDataStore")) {
|
||||
AuxiliaryProperty = properties.get(i).value();
|
||||
|
||||
auxiliaryProperties.put("aquamapsDataStore",
|
||||
AuxiliaryProperty);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return auxiliaryProperties;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class Interface
|
||||
@XmlRootElement(name = "Interface")
|
||||
public static class Interface {
|
||||
|
||||
@XmlElementRef
|
||||
private Endpoint endpoint = new Endpoint();
|
||||
|
||||
public Endpoint endpoint() {
|
||||
return endpoint;
|
||||
}
|
||||
}
|
||||
|
||||
// Class Endpoint
|
||||
@XmlRootElement(name = "Endpoint")
|
||||
public static class Endpoint {
|
||||
|
||||
@XmlAttribute(name = "EntryName")
|
||||
private String name;
|
||||
|
||||
@XmlValue
|
||||
private String address;
|
||||
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String address() {
|
||||
|
||||
if (address == null)
|
||||
address = "";
|
||||
return address;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class AccessData
|
||||
@XmlRootElement(name = "AccessData")
|
||||
public static class AccessData {
|
||||
|
||||
@XmlElement(name = "Username")
|
||||
private String username;
|
||||
|
||||
@XmlElement(name = "Password")
|
||||
private String password;
|
||||
|
||||
public String username() {
|
||||
|
||||
if ((username == null) || (username.equals(""))) {
|
||||
|
||||
username = "gcube";
|
||||
|
||||
}
|
||||
|
||||
return username;
|
||||
}
|
||||
|
||||
public String password() {
|
||||
|
||||
if ((password == null) || (password.equals(""))) {
|
||||
|
||||
password = "d4science";
|
||||
|
||||
}
|
||||
return password;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Class Property
|
||||
@XmlRootElement(name = "Property")
|
||||
public static class Property {
|
||||
|
||||
@XmlElement(name = "Name")
|
||||
private String name;
|
||||
|
||||
@XmlElement(name = "Value")
|
||||
private String value;
|
||||
|
||||
public String name() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String value() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public String setvalue(String val) {
|
||||
|
||||
value = val;
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,503 @@
|
|||
package org.gcube.dataanalysis.databases.resources.processing;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
|
||||
/**
|
||||
* Class that, taking the url as input, performs a parsing process of the field
|
||||
* Url through a tree decision
|
||||
*/
|
||||
public class Decider {
|
||||
|
||||
// Method that implements the tree decision to parse and build the field
|
||||
// Url.
|
||||
public static void decide(DBResource obj, int index) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->starting the parsing process");
|
||||
|
||||
String EntireUrl = "";
|
||||
|
||||
String[] SplitOne = null;
|
||||
|
||||
boolean varone = false;
|
||||
boolean var = false;
|
||||
|
||||
if (obj.getAccessPoints().get(index).address().contains("//")) { // the
|
||||
// url
|
||||
// contains
|
||||
// the
|
||||
// character
|
||||
// "//"
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->the url contains the character '//' ");
|
||||
|
||||
varone = true;
|
||||
|
||||
SplitOne = obj.getAccessPoints().get(index).address().split("//"); // Split
|
||||
// on
|
||||
// the
|
||||
// node
|
||||
// of
|
||||
// the
|
||||
// tree
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on '//' ");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->SplitOne's lenght: " + SplitOne.length);
|
||||
|
||||
// Test Print
|
||||
for (int i = 0; i < SplitOne.length; i++) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_one: " + SplitOne[i]);
|
||||
|
||||
}
|
||||
|
||||
if (SplitOne.length > 1) { // with the split operation there is two
|
||||
// parts on the left of "//" and on the
|
||||
// right of "//".
|
||||
|
||||
// try to build the first part of the string url
|
||||
|
||||
// recover the url in the left part of the url
|
||||
|
||||
if (SplitOne[0].length() == 0) { // There is not information on
|
||||
// the left of "//".
|
||||
// Left Node LevelTree=2
|
||||
|
||||
EntireUrl = EntireUrl + "jdbc" + ":";
|
||||
|
||||
if (obj.getPlatformName().toLowerCase().contains("mysql")) {
|
||||
|
||||
EntireUrl = EntireUrl + "mysql" + ":";
|
||||
|
||||
} else {
|
||||
|
||||
EntireUrl = EntireUrl + "postgresql" + ":";
|
||||
|
||||
}
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->result: " + EntireUrl);
|
||||
|
||||
}
|
||||
|
||||
// Split operation on the Left Node LevelTree=2
|
||||
|
||||
else { // there is information on the left of "//"
|
||||
|
||||
// if (SplitOne[0].contains(":")){
|
||||
String[] SplitTwo = SplitOne[0].split(":");
|
||||
|
||||
// System.out.println("split ':' one");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on '/'");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_two's lenght: "
|
||||
+ SplitTwo.length);
|
||||
|
||||
// Test Print
|
||||
for (int i = 0; i < SplitTwo.length; i++) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_two: " + SplitTwo[i]);
|
||||
|
||||
}
|
||||
|
||||
// check on the lenght
|
||||
|
||||
if (SplitTwo.length == 2) { // the two strings related to
|
||||
// "jdbc" and the driver's name
|
||||
// are presented.
|
||||
|
||||
if ((obj.getPlatformName().toLowerCase()
|
||||
.contains("postgres"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Decider->setting the url using the driver");
|
||||
|
||||
EntireUrl = SplitTwo[0] + ":" + "postgresql" + ":";
|
||||
}
|
||||
if (obj.getPlatformName().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
EntireUrl = SplitTwo[0] + ":" + "mysql" + ":";
|
||||
|
||||
}
|
||||
|
||||
} else { // there is one string: or the "jdbc" or the
|
||||
// driver's name.
|
||||
|
||||
if (SplitTwo[0].toLowerCase().equals("jdbc")) {
|
||||
|
||||
EntireUrl = "jdbc" + ":";
|
||||
|
||||
// if
|
||||
// ((this.getPlatformName().toLowerCase().contains("postgres"))||(this.getPlatformName().toLowerCase().contains("postgis"))){
|
||||
|
||||
if ((obj.getPlatformName().toLowerCase()
|
||||
.contains("postgres"))) {
|
||||
EntireUrl = EntireUrl + "postgresql" + ":";
|
||||
|
||||
}
|
||||
|
||||
if (obj.getPlatformName().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
EntireUrl = EntireUrl + "mysql" + ":";
|
||||
|
||||
}
|
||||
|
||||
} else { // there is the driver's name. I check the
|
||||
// variable db, set by the method guessDB,
|
||||
// to set the url properly.
|
||||
|
||||
if (obj.getPlatformName().toLowerCase()
|
||||
.contains("postgres")) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Decider->setting the url using the driver postgres");
|
||||
|
||||
EntireUrl = "jdbc" + ":" + "postgresql" + ":";
|
||||
|
||||
}
|
||||
|
||||
else if (obj.getPlatformName().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Decider->setting the url using the driver mysql");
|
||||
|
||||
EntireUrl = "jdbc" + ":" + "mysql" + ":";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
} else { // with the split operation there is one part on the left
|
||||
// of "//".
|
||||
|
||||
EntireUrl = obj.getAccessPoints().get(index).address();
|
||||
|
||||
if ((obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("postgres"))
|
||||
|| (obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("postgis"))) {
|
||||
|
||||
EntireUrl = "jdbc:postgresql://";
|
||||
|
||||
}
|
||||
if (obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
EntireUrl = "jdbc:mysql://";
|
||||
|
||||
}
|
||||
|
||||
// the url is built using the available information.
|
||||
EntireUrl = EntireUrl + obj.getHostedOn() + ":" + obj.getPort()
|
||||
+ "/"
|
||||
+ obj.getAccessPoints().get(index).getDatabaseName();
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->result: " + EntireUrl);
|
||||
|
||||
var = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ((obj.getAccessPoints().get(index).address().contains("/"))
|
||||
&& (var == false)) { // it manages several cases. It is selected
|
||||
// if: 1) there is only the part on the
|
||||
// right of "//", 2) there is the entire
|
||||
// string, 3) there is the part on the
|
||||
// right of "/"
|
||||
|
||||
// System.out.println("manage '/'");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->the url contains characther '/'");
|
||||
|
||||
if (varone == true) { // There is the hostname, the port number or
|
||||
// both. A split on "/" is performed to
|
||||
// retrieve the database's name
|
||||
|
||||
// Split operation on the Right Node LevelTree=2
|
||||
|
||||
String[] SplitThree = SplitOne[1].split("/");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on '/'");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_three's lenght: "
|
||||
+ SplitThree.length);
|
||||
|
||||
for (int i = 0; i < SplitThree.length; i++) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_three: " + SplitThree[i]);
|
||||
|
||||
}
|
||||
|
||||
if (SplitThree[0].length() == 0) { // There are not the hostname
|
||||
// and the port number.
|
||||
// Left Node LevelTree= 3
|
||||
|
||||
EntireUrl = EntireUrl + "//" + obj.getHostedOn() + ":"
|
||||
+ obj.getPort();
|
||||
|
||||
} else { // Recovery host and the port number
|
||||
|
||||
String[] SplitFour = SplitThree[0].split(":");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on ':'");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_four's lenght: "
|
||||
+ SplitFour.length);
|
||||
|
||||
for (int i = 0; i < SplitFour.length; i++) {
|
||||
|
||||
AnalysisLogger.getLogger()
|
||||
.debug("In class Decider->Split_four: "
|
||||
+ SplitFour[i]);
|
||||
|
||||
}
|
||||
|
||||
if (SplitFour[0].length() == 0) { // there is not the
|
||||
// hostname.
|
||||
// Left Node LevelTree=4
|
||||
|
||||
EntireUrl = EntireUrl + "//" + obj.getHostedOn();
|
||||
} else { // there is the hostname
|
||||
obj.setHostedOn(SplitFour[0]);
|
||||
|
||||
EntireUrl = EntireUrl + "//" + SplitFour[0];
|
||||
|
||||
}
|
||||
|
||||
if (SplitFour.length > 1) { // the url contains the port
|
||||
// number too.
|
||||
|
||||
// the url contains the port number
|
||||
|
||||
obj.setPort(SplitFour[1]);
|
||||
|
||||
EntireUrl = EntireUrl + ":" + SplitFour[1];
|
||||
|
||||
} else {
|
||||
// the url does not contain the port number
|
||||
|
||||
EntireUrl = EntireUrl + ":" + obj.getPort();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (SplitThree.length > 1) { // Right Node LevelTree= 3
|
||||
// the url contains the database's name
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.setDatabaseName(SplitThree[1]);
|
||||
|
||||
EntireUrl = EntireUrl + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
// The url does not contain the database's name
|
||||
|
||||
EntireUrl = EntireUrl
|
||||
+ "/"
|
||||
+ obj.getAccessPoints().get(index)
|
||||
.getDatabaseName();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else { // there is only the database's name
|
||||
|
||||
String[] SplitThree = obj.getAccessPoints().get(index)
|
||||
.address().split("/");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on '/'");
|
||||
|
||||
obj.getAccessPoints().get(index).setDatabaseName(SplitThree[1]);
|
||||
|
||||
if (SplitThree[0].length() == 0) { // only the database's name
|
||||
// is retrieved
|
||||
|
||||
// if
|
||||
// ((this.getPlatformName().equals("postgres"))||(this.getPlatformName().equals("postgis"))){
|
||||
if ((obj.getPlatformName().equals("postgres"))) {
|
||||
|
||||
EntireUrl = "jdbc:" + "postgresql" + ":" + "//"
|
||||
+ obj.getHostedOn() + ":" + obj.getPort() + "/"
|
||||
+ SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
if (obj.getPlatformName().toLowerCase().contains("mysql")) {
|
||||
|
||||
EntireUrl = "jdbc:" + "mysql" + ":" + "//"
|
||||
+ obj.getHostedOn() + ":" + obj.getPort() + "/"
|
||||
+ SplitThree[1];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (SplitThree[0].length() != 0) { // on the left of "/" there
|
||||
// are other information
|
||||
|
||||
String[] SplitTwo = SplitThree[0].split(":");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->split operation on ':'");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_two's lenght");
|
||||
|
||||
for (int i = 0; i < SplitTwo.length; i++) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Split_two: " + SplitTwo[i]);
|
||||
|
||||
}
|
||||
|
||||
// check on the lenght
|
||||
|
||||
if (SplitTwo.length == 2) { // The two strings "jdbc" and
|
||||
// driver's name are presented.
|
||||
|
||||
// sono presenti stringa "jdbc" e "nome driver"
|
||||
|
||||
// *this.getAccessPoints().get(index).SetDriver(SplitTwo[1]);
|
||||
|
||||
if ((SplitTwo[1].toLowerCase().contains("postgres"))
|
||||
|| (SplitTwo[1].toLowerCase()
|
||||
.contains("postgis"))) {
|
||||
|
||||
EntireUrl = SplitTwo[0] + ":" + "postgresql" + ":";
|
||||
}
|
||||
if (SplitTwo[1].toLowerCase().contains("mysql")) {
|
||||
|
||||
EntireUrl = SplitTwo[0] + ":" + "mysql" + ":";
|
||||
|
||||
}
|
||||
|
||||
// EntireUrl=SplitTwo[0]+":"+SplitTwo[1]+":";
|
||||
|
||||
// if
|
||||
// ((this.getPlatformName().toLowerCase().contains("postgres"))||(this.getPlatformName().toLowerCase().contains("postgis"))){
|
||||
if ((obj.getPlatformName().toLowerCase()
|
||||
.contains("postgres"))) {
|
||||
|
||||
EntireUrl = EntireUrl + "//" + obj.getHostedOn()
|
||||
+ ":" + obj.getPort() + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
if (obj.getPlatformName().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
EntireUrl = EntireUrl + "//" + obj.getHostedOn()
|
||||
+ ":" + obj.getPort() + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
} else { // only one string between "jdbc" or driver's name
|
||||
// is presented
|
||||
|
||||
if (SplitTwo[0].toLowerCase().equals("jdbc")) { // the
|
||||
// string
|
||||
// "jdbc"
|
||||
// is
|
||||
// presented
|
||||
|
||||
EntireUrl = "jdbc" + ":";
|
||||
|
||||
if ((obj.getPlatformName().toLowerCase()
|
||||
.contains("postgres"))
|
||||
|| (obj.getPlatformName().toLowerCase()
|
||||
.contains("postgis"))) {
|
||||
|
||||
EntireUrl = EntireUrl + "postgresql" + ":"
|
||||
+ "//" + obj.getHostedOn() + ":"
|
||||
+ obj.getPort() + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
if (obj.getPlatformName().toLowerCase()
|
||||
.contains("mysql")) {
|
||||
|
||||
EntireUrl = EntireUrl + "mysql" + ":" + "//"
|
||||
+ obj.getHostedOn() + ":"
|
||||
+ obj.getPort() + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
} else { // the string related to the driver's name is
|
||||
// presented
|
||||
|
||||
// EntireUrl="jdbc"+":"+SplitTwo[0]+":"+"//"+this.getHostedOn()+":"+this.getPort()+"/"+SplitThree[1];;
|
||||
// *this.getAccessPoints().get(index).SetDriver(SplitTwo[0]);
|
||||
|
||||
if ((obj.getDBguessed().contains("postgis"))
|
||||
|| (obj.getDBguessed().contains("postgres"))) {
|
||||
// EntireUrl="jdbc"+":"+SplitTwo[0]+":"+"//"+this.getHostedOn()+":"+this.getPort()+"/"+SplitThree[1];}
|
||||
|
||||
// *this.getAccessPoints().get(index).SetDriver(SplitTwo[0]);
|
||||
|
||||
EntireUrl = "jdbc" + ":" + "postgresql" + ":"
|
||||
+ "//" + obj.getHostedOn() + ":"
|
||||
+ obj.getPort() + "/" + SplitThree[1];
|
||||
}
|
||||
if (obj.getDBguessed().contains("mysql")) {
|
||||
|
||||
EntireUrl = "jdbc" + ":" + "mysql" + ":" + "//"
|
||||
+ obj.getHostedOn() + ":"
|
||||
+ obj.getPort() + "/" + SplitThree[1];
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// if(this.getAccessPoints().get(index).address().contains(":")){}
|
||||
|
||||
obj.getAccessPoints().get(index).setUrl(EntireUrl);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Decider->Url normalized: "
|
||||
+ obj.getAccessPoints().get(index).address());
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,361 @@
|
|||
package org.gcube.dataanalysis.databases.resources.processing;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
|
||||
/**
|
||||
* Class that uses as inputs the available information (platform, driver and
|
||||
* dialect) to determine the database's type
|
||||
*/
|
||||
|
||||
public class Guesser {
|
||||
|
||||
private String db = ""; // the database's type
|
||||
|
||||
// Method that determines the database's type using the available
|
||||
// information as platform, driver and dialect and set these parameters to
|
||||
// the correct values if they are not specified according to a well-formed
|
||||
// mode.
|
||||
public String guessDB(DBResource obj, int index) {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->starting the guess process");
|
||||
|
||||
// String platform = "";
|
||||
|
||||
if ((obj.getPlatformName().trim().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDriver().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDialect().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("mysql"))) { // it is used the 'mysql'
|
||||
// driver's name
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the 'mysql' driver's name");
|
||||
|
||||
// System.out.println("Set condition default");
|
||||
|
||||
db = "mysql";
|
||||
|
||||
obj.setPort("3306");
|
||||
|
||||
// return db;
|
||||
|
||||
}
|
||||
|
||||
else if ((obj.getPlatformName().trim().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDriver().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDialect().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("postgis"))) { // it is used the 'postgis'
|
||||
// dialect's name
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the address information: "
|
||||
+ obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgis";
|
||||
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
if ((obj.getPlatformName().trim().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDriver().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDialect().equals(""))
|
||||
&& (!(obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("mysql")))
|
||||
&& (!(obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("postgres")))) { // in this case there are not
|
||||
// enough information so the
|
||||
// database's name and the
|
||||
// port number are set to
|
||||
// the default values.
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number are set to the default values");
|
||||
|
||||
db = "postgres";
|
||||
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
if ((obj.getPlatformName().trim().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDriver().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).getDialect().equals(""))
|
||||
&& (obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("postgres"))) { // it is used the 'postgres'
|
||||
// driver's name
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the address information: "
|
||||
+ obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgres";
|
||||
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
if (((obj.getPlatformName() != ""))
|
||||
&& (obj.getPlatformName().toLowerCase().contains("mysql"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the platform's name: "
|
||||
+ obj.getPlatformName().toLowerCase());
|
||||
|
||||
db = "mysql";
|
||||
obj.setPort("3306");
|
||||
|
||||
} else if ((obj.getAccessPoints().get(index).getDriver() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDriver().toLowerCase()
|
||||
.contains("mysql"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver()
|
||||
.toLowerCase());
|
||||
|
||||
db = "mysql";
|
||||
obj.setPort("3306");
|
||||
} else if ((obj.getAccessPoints().get(index).getDialect() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDialect().toLowerCase()
|
||||
.contains("mysql"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect()
|
||||
.toLowerCase());
|
||||
|
||||
db = "mysql";
|
||||
obj.setPort("3306");
|
||||
|
||||
}
|
||||
|
||||
if ((obj.getPlatformName() != "")
|
||||
&& (obj.getPlatformName().toLowerCase().contains("postgres"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the platform's name: "
|
||||
+ obj.getPlatformName().toLowerCase());
|
||||
|
||||
db = "postgres";
|
||||
obj.setPort("5432");
|
||||
|
||||
} else if ((obj.getAccessPoints().get(index).getDriver() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDriver().toLowerCase()
|
||||
.contains("postgres"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgres";
|
||||
obj.setPort("5432");
|
||||
} else if ((obj.getAccessPoints().get(index).getDialect() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDialect().toLowerCase()
|
||||
.contains("postgres"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgres";
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
if ((obj.getPlatformName() != "")
|
||||
&& (obj.getPlatformName().toLowerCase().contains("postgis"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the platform's name: "
|
||||
+ obj.getPlatformName().toLowerCase());
|
||||
|
||||
db = "postgis";
|
||||
obj.setPort("5432");
|
||||
|
||||
// }else if
|
||||
// ((this.getAccessPoints().get(index).Driver.toLowerCase().contains("postgis"))&&(!(this.getAccessPoints().get(index).Driver.equals("")))){
|
||||
} else if ((obj.getAccessPoints().get(index).getDriver() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDriver().toLowerCase()
|
||||
.contains("postgis"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgis";
|
||||
obj.setPort("5432");
|
||||
|
||||
// }else if
|
||||
// ((this.getAccessPoints().get(index).getDialect()!="")&&(this.getAccessPoints().get(index).getDialect().toLowerCase().contains("postgis")))
|
||||
// {
|
||||
} else if ((obj.getAccessPoints().get(index).getDialect() != "")
|
||||
&& (obj.getAccessPoints().get(index).getDialect().toLowerCase()
|
||||
.contains("postgis"))) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgis";
|
||||
obj.setPort("5432");
|
||||
|
||||
} else if (obj.getAccessPoints().get(index).address().toLowerCase()
|
||||
.contains("postgis")) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number determined using the address information: "
|
||||
+ obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgis";
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
if (db.equals("")) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->database's name and port number are set to default values because the database's type is not determined : "
|
||||
+ obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase());
|
||||
|
||||
db = "postgres";
|
||||
obj.setPort("5432");
|
||||
|
||||
}
|
||||
|
||||
// 'Set' process of the platform, driver and dialect parameters
|
||||
|
||||
// Set Platform's name Operation
|
||||
|
||||
if ((db.equals("mysql")) || (db.equals("postgres"))) {
|
||||
|
||||
obj.setPlatformName(db);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->setting platform's name: "
|
||||
+ obj.getPlatformName());
|
||||
|
||||
} else if (db.equals("postgis")) {
|
||||
|
||||
obj.setPlatformName("postgres");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->setting platform's name: "
|
||||
+ obj.getPlatformName());
|
||||
|
||||
}
|
||||
|
||||
// Set Driver's name Operation
|
||||
|
||||
if ((obj.getAccessPoints().get(index).getDriver() == "")
|
||||
|| (!(obj.getAccessPoints().get(index).getDriver()
|
||||
.contains(".")))) {
|
||||
|
||||
if (db.contains("postgres")) {
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.SetDriver("org.postgresql.Driver");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->setting driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver());
|
||||
|
||||
} else if (db.contains("postgis")) {
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.SetDriver("org.postgresql.Driver");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->setting driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver());
|
||||
|
||||
} else if (db.contains("mysql")) {
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.SetDriver("com.mysql.jdbc.Driver");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Guesser->setting driver's name: "
|
||||
+ obj.getAccessPoints().get(index).getDriver());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Set Dialect's name operation
|
||||
if ((obj.getAccessPoints().get(index).getDialect() == "")
|
||||
|| (!(obj.getAccessPoints().get(index).getDialect()
|
||||
.contains(".")))) {
|
||||
|
||||
if (db.contains("postgres")) {
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.SetDialect("org.hibernate.dialect.PostgreSQLDialect");
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->setting dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect());
|
||||
|
||||
} else if (db.contains("postgis")) {
|
||||
|
||||
obj.getAccessPoints()
|
||||
.get(index)
|
||||
.SetDialect(
|
||||
"org.hibernatespatial.postgis.PostgisDialect");
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->setting dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect());
|
||||
|
||||
} else if (db.contains("mysql")) {
|
||||
|
||||
obj.getAccessPoints().get(index)
|
||||
.SetDialect("org.hibernate.dialect.MySQLDialect");
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In class Guesser->setting dialect's name: "
|
||||
+ obj.getAccessPoints().get(index).getDialect());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return db;
|
||||
|
||||
}
|
||||
|
||||
// it returns the db field of the object Guesser
|
||||
public String getDB() {
|
||||
|
||||
return db;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
package org.gcube.dataanalysis.databases.resources.processing;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
import org.gcube.dataanalysis.databases.resources.processing.Normalizer;
|
||||
import org.gcube.dataanalysis.databases.resources.processing.Guesser;
|
||||
|
||||
|
||||
/** Class that performs the normalization process using the available information specified from the user */
|
||||
|
||||
public class Normalizer {
|
||||
|
||||
/* It performs the normalization process considering as input an access point field of a DBResource resource */
|
||||
public static void normalize(DBResource obj, int index) throws IOException {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting to guess the database's type");
|
||||
|
||||
Guesser guess=new Guesser();
|
||||
|
||||
String db = guess.guessDB(obj, index);
|
||||
|
||||
obj.setDBguessed(db);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting the normalization process");
|
||||
|
||||
// the Url contains at least the character between the "//", "/" or ":"
|
||||
if ((obj.getAccessPoints().get(index).address().contains("//"))
|
||||
|| (obj.getAccessPoints().get(index).address().contains("/"))
|
||||
|| (obj.getAccessPoints().get(index).address().contains(":")))
|
||||
{
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->calling the parsing process of the url");
|
||||
Decider.decide(obj, index);
|
||||
|
||||
} else { // the Url does not contain none of the characters "//", "/" or
|
||||
// ":" so there is an indecision to be managed
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting to manage an indecision");
|
||||
|
||||
if ((obj.getAccessPoints().get(index).address().equals(obj
|
||||
.getHostedOn())) && (!(obj.getHostedOn().equals("")))) { /* the address is the hostname */
|
||||
|
||||
obj.getAccessPoints()
|
||||
.get(index)
|
||||
.setUrl("//"
|
||||
+ obj.getAccessPoints().get(index).address());
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting the tree decision process using the hostname");
|
||||
|
||||
Decider.decide(obj, index);
|
||||
|
||||
} else if ((!(obj.getAccessPoints().get(index).address().equals("")))
|
||||
&& (!(obj.getAccessPoints().get(index).address().equals(obj
|
||||
.getHostedOn())) && (obj.getHostedOn().equals("")))) {
|
||||
|
||||
// throw new UnknownHostException("The host is unknown");
|
||||
|
||||
throw new UnknownHostException(
|
||||
"the available information are not sufficient to determine the complete address: please fill the field 'Hosted On'");
|
||||
|
||||
} else if ((!(obj.getAccessPoints().get(index).address()
|
||||
.equals("jdbc")))
|
||||
&& (!(obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().toLowerCase().contains("mysql")))
|
||||
|
||||
&& (!(obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("postgres")))
|
||||
&& (!(obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("postgis")))
|
||||
&& (!(obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains(obj.getPort())))
|
||||
&& (!(obj.getAccessPoints().get(index).address().equals("")))) { /* the address is the database's name */
|
||||
|
||||
obj.getAccessPoints()
|
||||
.get(index)
|
||||
.setUrl("/"
|
||||
+ obj.getAccessPoints().get(index).address());
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting the tree decision process using the database's name");
|
||||
|
||||
Decider.decide(obj, index);
|
||||
|
||||
} else if ((obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("postgres"))
|
||||
|| (obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("postgis"))
|
||||
|| (obj.getAccessPoints().get(index).address()
|
||||
.toLowerCase().contains("mysql"))) { /* the address is the driver's name */
|
||||
|
||||
obj.getAccessPoints()
|
||||
.get(index)
|
||||
.setUrl("jdbc:"
|
||||
+ obj.getAccessPoints().get(index).address()
|
||||
+ "://");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->starting the tree decision process using the driver's name");
|
||||
|
||||
Decider.decide(obj, index);
|
||||
|
||||
}
|
||||
|
||||
// if ((obj.getAccessPoints().get(index).address().equals(""))){
|
||||
if ((obj.getAccessPoints().get(index).address().equals(""))) { /* the address is empty so several available information are used to build the Url */
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->managing the address null");
|
||||
|
||||
// Empty address management
|
||||
|
||||
if (!(obj.getHostedOn().equals(""))
|
||||
&& (obj.getHostedOn() != null)) { /* the hostname is used if it is not null. */
|
||||
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In class Normalizer->using the hostname"
|
||||
// + obj.getHostedOn());
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->managing the address null using the hostname");
|
||||
|
||||
obj.getAccessPoints().get(index).setUrl(obj.getHostedOn());
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In class Normalizer->recalling the 'normalize' method");
|
||||
|
||||
normalize(obj, index);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package org.gcube.dataanalysis.databases.sampler;
|
||||
|
||||
/**
|
||||
* Class that allows to describe
|
||||
*/
|
||||
public class RowScore implements Comparable<RowScore> {
|
||||
|
||||
private Object row;
|
||||
private int score;
|
||||
|
||||
public RowScore(Object r, int s) {
|
||||
|
||||
row = r;
|
||||
score = s;
|
||||
|
||||
}
|
||||
|
||||
// to get the row
|
||||
public Object getRow() {
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
// to get the score
|
||||
public int getScore() {
|
||||
|
||||
return score;
|
||||
}
|
||||
|
||||
// to compare two RowScore objects in order to sort a list of this objects
|
||||
@Override
|
||||
public int compareTo(RowScore o) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
if (this.score > o.getScore())
|
||||
return 1;
|
||||
|
||||
if (this.score == o.getScore())
|
||||
return 0;
|
||||
|
||||
if (this.score < o.getScore())
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,168 @@
|
|||
package org.gcube.dataanalysis.databases.structure;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.hibernate.SessionFactory;
|
||||
|
||||
/** Class that allows to create a table for a database */
|
||||
public abstract class AbstractTableStructure {
|
||||
|
||||
protected List<String> ColumnNames;
|
||||
protected List<String> TypesList;
|
||||
protected List<Integer> TypesLengths;
|
||||
protected List<String> DefaultValues;
|
||||
protected List<String> CompleteTypes;
|
||||
protected List<String> ColumnKeys;
|
||||
protected List<String> UniqueKeys;
|
||||
protected List<String> ForeignKeys;
|
||||
protected List<String> Indexes;
|
||||
protected List<Boolean> IsNullables;
|
||||
protected String databaseName;
|
||||
protected String charset;
|
||||
protected String tableName;
|
||||
|
||||
|
||||
// create table query
|
||||
protected static String createTableQueryElement = "\"%1$s\" %2$s %3$s %4$s";
|
||||
protected static String defaultTableQueryElement = "DEFAULT %1$s";
|
||||
protected static String createTableQuery = "CREATE TABLE %1$s ( %2$s );";
|
||||
|
||||
protected static String primaryKeyStatement = "PRIMARY KEY";
|
||||
protected static String uniqueKeyStatement = "UNIQUE";
|
||||
protected static String foreignKeyStatement = "FOREIGN KEY";
|
||||
|
||||
|
||||
//Abstracts methods
|
||||
protected abstract void buildStructure(SessionFactory dbSession)
|
||||
throws Exception;
|
||||
|
||||
protected abstract String getQueryForTableStructure(SessionFactory dbSession)
|
||||
throws Exception;
|
||||
|
||||
protected abstract String getQueryForIndexes(SessionFactory dbSession)
|
||||
throws Exception;
|
||||
|
||||
public AbstractTableStructure(String Databasename, String TableName,
|
||||
SessionFactory dbSession, boolean buildStructure) throws Exception {
|
||||
|
||||
try {
|
||||
ColumnNames = new ArrayList<String>();
|
||||
TypesList = new ArrayList<String>();
|
||||
TypesLengths = new ArrayList<Integer>();
|
||||
DefaultValues = new ArrayList<String>();
|
||||
CompleteTypes = new ArrayList<String>();
|
||||
ColumnKeys = new ArrayList<String>();
|
||||
UniqueKeys = new ArrayList<String>();
|
||||
ForeignKeys = new ArrayList<String>();
|
||||
Indexes = new ArrayList<String>();
|
||||
IsNullables = new ArrayList<Boolean>();
|
||||
tableName= TableName;
|
||||
databaseName = Databasename;
|
||||
|
||||
|
||||
if (buildStructure)
|
||||
buildStructure(dbSession);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
throw e;
|
||||
|
||||
// String error = e.getCause().toString();
|
||||
//
|
||||
// if ((error.contains("Table")) && (error.contains("doesn't exist"))) {
|
||||
//
|
||||
// System.out.println("Table " + TableName + " doesn't exist");
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public AbstractTableStructure(String Databasename, String TableName,
|
||||
SessionFactory dbSession) throws Exception {
|
||||
|
||||
this(Databasename, TableName, dbSession, true);
|
||||
}
|
||||
|
||||
// builds a table by merging information in data structure
|
||||
public String buildUpCreateTable() {
|
||||
int numOfElements = ColumnNames.size();
|
||||
StringBuffer elementsBuffer = new StringBuffer();
|
||||
|
||||
// build up create statement elements
|
||||
for (int i = 0; i < numOfElements; i++) {
|
||||
String nullable = "";
|
||||
if (!IsNullables.get(i).booleanValue())
|
||||
nullable = "NOT NULL";
|
||||
|
||||
String defaultvalue = "";
|
||||
|
||||
if (DefaultValues.size()!=0){
|
||||
|
||||
if ((DefaultValues.get(i) != null)
|
||||
&& (DefaultValues.get(i).trim().length() > 0)
|
||||
&& (nullable.equals("NOT NULL"))) {
|
||||
defaultvalue = DefaultValues.get(i);
|
||||
|
||||
defaultvalue = String.format(defaultTableQueryElement,
|
||||
defaultvalue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
String createStatementElement = String.format(
|
||||
createTableQueryElement, ColumnNames.get(i),
|
||||
TypesList.get(i), nullable, defaultvalue);
|
||||
|
||||
elementsBuffer.append(createStatementElement);
|
||||
|
||||
if (i < numOfElements - 1)
|
||||
elementsBuffer.append(",");
|
||||
}
|
||||
|
||||
// build up primary keys statements
|
||||
elementsBuffer
|
||||
.append(buildUPConstraint(primaryKeyStatement, ColumnKeys));
|
||||
elementsBuffer
|
||||
.append(buildUPConstraint(uniqueKeyStatement, UniqueKeys));
|
||||
elementsBuffer.append(buildUPConstraint(foreignKeyStatement,
|
||||
ForeignKeys));
|
||||
|
||||
// build up create statement
|
||||
String createStatement = String.format(createTableQuery, tableName,
|
||||
elementsBuffer.toString(), charset);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"AbstractTableStructure->Create Table Query: "
|
||||
+ createStatement);
|
||||
|
||||
return createStatement;
|
||||
}
|
||||
|
||||
private String buildUPConstraint(String statement, List<String> Keys) {
|
||||
|
||||
// build up primary keys statements
|
||||
StringBuffer elementsBuffer = new StringBuffer();
|
||||
int numKeys = Keys.size();
|
||||
if (numKeys > 0) {
|
||||
elementsBuffer.append(", " + statement + "(");
|
||||
for (int i = 0; i < numKeys; i++) {
|
||||
String columnKey = Keys.get(i);
|
||||
if (columnKey != null) {
|
||||
elementsBuffer.append("\"" + columnKey + "\"");
|
||||
|
||||
if (i < numKeys - 1)
|
||||
elementsBuffer.append(",");
|
||||
}
|
||||
|
||||
}
|
||||
elementsBuffer.append(")");
|
||||
}
|
||||
|
||||
return elementsBuffer.toString();
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,194 @@
|
|||
package org.gcube.dataanalysis.databases.structure;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.dataanalysis.databases.utils.ConnectionManager;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.hibernate.SessionFactory;
|
||||
|
||||
/** Class that allows to manage the MySQL database. */
|
||||
public class MySQLTableStructure extends AbstractTableStructure {
|
||||
|
||||
public MySQLTableStructure(String Databasename, String TableName,
|
||||
SessionFactory dbSession) throws Exception {
|
||||
super(Databasename, TableName, dbSession, false);
|
||||
}
|
||||
|
||||
// Method that executes the query "show create table" in order to retrieve
|
||||
// the "create table" statement
|
||||
public String showCreateTable(ConnectionManager connection, SessionFactory dbSession) throws Exception {
|
||||
|
||||
// Retrieve the query
|
||||
String queryForIndexes = getQueryForIndexes(dbSession);
|
||||
|
||||
try {
|
||||
|
||||
// List<Object> indexSet = DatabaseFactory.executeSQLQuery(
|
||||
// String.format(queryForIndexes, tableName), dbSession);
|
||||
|
||||
List<Object> indexSet = connection.executeQuery(String.format(queryForIndexes, tableName), dbSession);
|
||||
|
||||
String createTableStatement = (String) (((Object[]) indexSet.get(0))[1]);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"MySQLTableStructure->'Create Table' statement: "
|
||||
+ createTableStatement);
|
||||
|
||||
return createTableStatement;
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
throw e;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Method that returns the query to build the table's structure. This method
|
||||
// is not useful for mysql.
|
||||
@Override
|
||||
protected String getQueryForTableStructure(SessionFactory dbSession)
|
||||
throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
String queryForStructure = "SELECT table_schema,table_name,column_name,column_default,is_nullable,data_type,character_maximum_length,character_set_name,column_type,column_key FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
||||
|
||||
return queryForStructure;
|
||||
|
||||
}
|
||||
|
||||
// Method that returns the query to show the create statement
|
||||
@Override
|
||||
protected String getQueryForIndexes(SessionFactory dbSession)
|
||||
throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
String queryForIndexes = "SHOW CREATE TABLE `%1$s`;";
|
||||
|
||||
return queryForIndexes;
|
||||
|
||||
}
|
||||
|
||||
// This method is not useful for the database mysql because the slq query
|
||||
// "show create" makes available the create table statement.
|
||||
@Override
|
||||
protected void buildStructure(SessionFactory dbSession) throws Exception {
|
||||
|
||||
// //retrieve the query
|
||||
// String queryForStructure=getQueryForTableStructure(dbSession);
|
||||
//
|
||||
// String queryStructure =
|
||||
// String.format(queryForStructure,tableName,databaseName);
|
||||
// List<Object> resultSet =
|
||||
// DatabaseFactory.executeSQLQuery(queryStructure, dbSession);
|
||||
//
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("MySQLTableStructure->Building Structure with query: "+queryStructure);
|
||||
//
|
||||
// int resultsNumber = resultSet.size();
|
||||
//
|
||||
// for (int i=0;i<resultsNumber;i++) {
|
||||
// try {
|
||||
// Object result = resultSet.get(i);
|
||||
// Object[] resultArray = (Object[]) result;
|
||||
// if (i==0){
|
||||
// charset = (String)resultArray[7];
|
||||
// }
|
||||
// String columnname = ((String)resultArray[2]).toLowerCase();
|
||||
// if (columnname.equalsIgnoreCase("class"))
|
||||
// columnname = "classcolumn";
|
||||
//
|
||||
// ColumnNames.add(columnname);
|
||||
// DefaultValues.add((String)resultArray[3]);
|
||||
// String yesno = (String)resultArray[4];
|
||||
// if (yesno.equalsIgnoreCase("YES"))
|
||||
// IsNullables.add(true);
|
||||
// else
|
||||
// IsNullables.add(false);
|
||||
// TypesList.add((String)resultArray[5]);
|
||||
// try{
|
||||
// TypesLengths.add(((BigInteger)resultArray[6]).intValue());
|
||||
// }catch(Exception e){
|
||||
// TypesLengths.add(-1);
|
||||
// }
|
||||
// CompleteTypes.add((String)resultArray[8]);
|
||||
//
|
||||
//
|
||||
//
|
||||
// String columnKey = (String)resultArray[9];
|
||||
// //
|
||||
// if (columnKey.equals("PRI"))
|
||||
// ColumnKeys.add(columnname);
|
||||
// else if (columnKey.equals("UNI"))
|
||||
// UniqueKeys.add(columnname);
|
||||
// else if (columnKey.equals("MUL"))
|
||||
// UniqueKeys.add(columnname);
|
||||
//
|
||||
// // else if ((columnKey != null) && (columnKey.length()>0))
|
||||
// //
|
||||
// System.err.println("MySQLTableStructure->KEY NOT CONTEMPLATED : "+columnKey);
|
||||
//
|
||||
// /*
|
||||
// if (columnKey.equals("PRI"))
|
||||
// ColumnKeys.add(columnname);
|
||||
// else if (columnKey.equals("UNI"))
|
||||
// UniqueKeys.add(columnname);
|
||||
// else if (columnKey.equals("MUL"))
|
||||
// UniqueKeys.add(columnname);
|
||||
//
|
||||
// else if ((columnKey != null) && (columnKey.length()>0))
|
||||
// System.err.println("MySQLTableStructure->KEY NOT CONTEMPLATED : "+columnKey);
|
||||
// */
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // parseIndexes2(dbSession);
|
||||
// //fill up the indexes array
|
||||
//
|
||||
// //***Commentata
|
||||
//
|
||||
// // for (String index:Indexes){
|
||||
// ////
|
||||
// AnalysisLogger.getLogger().debug("unique index removal: "+index);
|
||||
// // //eliminate the unicity
|
||||
// // UniqueKeys.remove(index);
|
||||
// // }
|
||||
|
||||
}
|
||||
|
||||
// This method is not useful for the database mysql because the slq query
|
||||
// "show create" makes available the create table statement.
|
||||
|
||||
// private void parseIndexes2 (SessionFactory dbSession) throws Exception{
|
||||
//
|
||||
//
|
||||
// //Retrieve the query
|
||||
// String queryForIndexes=getQueryForIndexes(dbSession);
|
||||
//
|
||||
// List<Object> indexSet =
|
||||
// DatabaseFactory.executeSQLQuery(String.format(queryForIndexes,tableName),
|
||||
// dbSession);
|
||||
//
|
||||
// String createTableStatement = (String)(((Object[])indexSet.get(0))[1]);
|
||||
// String [] splitted = createTableStatement.split("\n");
|
||||
//
|
||||
// for (int i=0;i<splitted.length;i++){
|
||||
// String line = splitted[i].trim();
|
||||
// if (line.contains("KEY")){
|
||||
// int start = line.indexOf("(");
|
||||
// int end = line.indexOf(")");
|
||||
// String column = line.substring(start+1,end);
|
||||
// column = column.replace("'", "").replace("`", "");
|
||||
// column = column.toLowerCase().trim();
|
||||
// // if (column.equals("class"))
|
||||
// // column = "classcolumn";
|
||||
// if (!Indexes.contains(column))
|
||||
// Indexes.add(column);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
|
@ -0,0 +1,298 @@
|
|||
package org.gcube.dataanalysis.databases.structure;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.gcube.dataanalysis.databases.utils.DatabaseFactory;
|
||||
|
||||
/** Class that allows to manage the Postgres database. */
|
||||
public class PostgresTableStructure extends AbstractTableStructure {
|
||||
|
||||
public PostgresTableStructure(String Schemaname, String TableName,
|
||||
SessionFactory dbSession) throws Exception {
|
||||
super(Schemaname, TableName, dbSession);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
// Method that allows to build the structure for a Postgres database.
|
||||
@Override
|
||||
protected void buildStructure(SessionFactory dbSession) throws Exception {
|
||||
|
||||
String queryForStructure = getQueryForTableStructure(dbSession);
|
||||
|
||||
String queryStructure = String.format(queryForStructure, tableName,
|
||||
databaseName);
|
||||
|
||||
List<Object> resultSet = DatabaseFactory.executeSQLQuery(
|
||||
queryStructure, dbSession);
|
||||
|
||||
// if (resultSet==null){
|
||||
//
|
||||
// throw new Exception("The resulting table has not rows");
|
||||
//
|
||||
// }
|
||||
|
||||
// manage an error that postgres does not signal. In this case the
|
||||
// "queryForStructure" query is case sensitive so the field "table_name"
|
||||
// must be set to the table name well formatted.
|
||||
if (resultSet == null) {
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("PostgresTableStructure->Error: Results not available. Check that the database and schema names are correct"
|
||||
+ queryStructure);
|
||||
|
||||
throw new Exception(
|
||||
"Results not available. Check that the database and schema names are correct");
|
||||
|
||||
}
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"PostgresTableStructure->Building Structure with query: "
|
||||
+ queryStructure);
|
||||
|
||||
int resultsNumber = resultSet.size();
|
||||
|
||||
for (int i = 0; i < resultsNumber; i++) {
|
||||
|
||||
try {
|
||||
Object result = resultSet.get(i);
|
||||
Object[] resultArray = (Object[]) result;
|
||||
|
||||
// retrieve the column name
|
||||
String columnname = ((String) resultArray[0]).toLowerCase();
|
||||
if (columnname.equalsIgnoreCase("class"))
|
||||
columnname = "classcolumn";
|
||||
|
||||
ColumnNames.add(columnname);
|
||||
|
||||
// retrieve the nullable value
|
||||
String yesno = (String) resultArray[2];
|
||||
if (yesno.equalsIgnoreCase("YES"))
|
||||
IsNullables.add(true);
|
||||
else
|
||||
IsNullables.add(false);
|
||||
|
||||
// retrieve the data type
|
||||
String type = (String) resultArray[3];
|
||||
|
||||
if ((resultArray[1] != null)
|
||||
&& (resultArray[3].toString().equals("integer"))) {
|
||||
|
||||
if ((resultArray[1]).toString().startsWith("nextval('")) {
|
||||
|
||||
type = "serial";
|
||||
|
||||
}
|
||||
// else{
|
||||
//
|
||||
// //recover the default value
|
||||
// // DefaultValues.add(resultArray[1]).toString());
|
||||
// DefaultValues.add((String)(resultArray[1]));
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
if (resultArray[4] != null) {
|
||||
String tot = "";
|
||||
|
||||
charset = resultArray[4].toString();
|
||||
|
||||
tot = type + "(" + charset + ")";
|
||||
|
||||
// retrieve the data type
|
||||
TypesList.add(tot);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
// retrieve the data type
|
||||
TypesList.add(type);
|
||||
|
||||
}
|
||||
|
||||
} else if (type.equals("USER-DEFINED")) {
|
||||
|
||||
type = (String) resultArray[5];
|
||||
|
||||
// retrieve the character maximun lenght
|
||||
if (resultArray[4] != null) {
|
||||
String tot = "";
|
||||
|
||||
charset = resultArray[4].toString();
|
||||
|
||||
tot = type + "(" + charset + ")";
|
||||
|
||||
// retrieve the data type
|
||||
TypesList.add(tot);
|
||||
|
||||
} else {
|
||||
// retrieve the data type
|
||||
TypesList.add(type);
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// retrieve the character maximun lenght
|
||||
|
||||
if (resultArray[4] != null) {
|
||||
String tot = "";
|
||||
|
||||
charset = resultArray[4].toString();
|
||||
|
||||
tot = type + "(" + charset + ")";
|
||||
|
||||
// retrieve the data type
|
||||
TypesList.add(tot);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
// retrieve the data type
|
||||
TypesList.add(type);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// recover the default value
|
||||
if ((resultArray[1] == null)
|
||||
|| ((resultArray[1]).toString().startsWith("nextval('"))) {
|
||||
|
||||
DefaultValues.add(null);
|
||||
|
||||
} else {
|
||||
|
||||
DefaultValues.add((String) (resultArray[1]));
|
||||
}
|
||||
|
||||
// String tot = "";
|
||||
//
|
||||
// if (resultArray[4] != null) {
|
||||
//
|
||||
// charset = resultArray[4].toString();
|
||||
// // AnalysisLogger.getLogger().debug(
|
||||
// // "PostgresTableStructure->charset: " + charset);
|
||||
//
|
||||
// // String type = (String)resultArray[3];
|
||||
//
|
||||
//
|
||||
// // if((resultArray[3].toString().equals("integer")) &&
|
||||
// (resultArray[1]).toString().startsWith("nextval('")){
|
||||
// //
|
||||
// //
|
||||
// // type="serial";
|
||||
// //
|
||||
// // }
|
||||
// // if (type.equals("USER-DEFINED")){
|
||||
// //
|
||||
// // type=(String)resultArray[5];
|
||||
// //
|
||||
// // }
|
||||
//
|
||||
// tot = type + "(" + charset + ")";
|
||||
//
|
||||
// TypesList.add(tot);
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
// else {
|
||||
// String type = (String)resultArray[3];
|
||||
// String coldefault=(String)resultArray[1];
|
||||
//
|
||||
// // if((type.equals("integer")) && (coldefault!=null) &&
|
||||
// (coldefault.startsWith("nextval('"))){
|
||||
//
|
||||
// if((type.equals("integer")) && (coldefault!=null)) {
|
||||
//
|
||||
//
|
||||
// type="serial";
|
||||
//
|
||||
// }
|
||||
//
|
||||
// TypesList.add(type);
|
||||
//
|
||||
// }
|
||||
|
||||
} catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
parseIndexes(dbSession);
|
||||
|
||||
}
|
||||
|
||||
// Method that allows to recover the keys of a table.
|
||||
private void parseIndexes(SessionFactory dbSession) throws Exception {
|
||||
|
||||
// Query that retrieves keys
|
||||
|
||||
String queryForIndexes = getQueryForIndexes(dbSession);
|
||||
|
||||
String queryStructure = String.format(queryForIndexes, tableName);
|
||||
List<Object> resultSet = DatabaseFactory.executeSQLQuery(
|
||||
queryStructure, dbSession);
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"PostgresTableStructure->Building Structure with query adding keys: "
|
||||
+ queryStructure);
|
||||
|
||||
if (resultSet != null) {
|
||||
int resultsNumber = resultSet.size();
|
||||
|
||||
for (int i = 0; i < resultsNumber; i++) {
|
||||
|
||||
Object result = resultSet.get(i);
|
||||
Object[] resultArray = (Object[]) result;
|
||||
|
||||
String columnKey = (String) resultArray[1];
|
||||
|
||||
if (columnKey.equals("PRIMARY KEY"))
|
||||
ColumnKeys.add((String) resultArray[3]);
|
||||
else if (columnKey.equals("UNIQUE KEY"))
|
||||
UniqueKeys.add((String) resultArray[3]);
|
||||
else if (columnKey.equals("FOREIGN KEY"))
|
||||
UniqueKeys.add((String) resultArray[3]);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Method that returns the query to build the table's structure.
|
||||
@Override
|
||||
protected String getQueryForTableStructure(SessionFactory dbSession)
|
||||
throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
// String queryForStructure =
|
||||
// "SELECT table_schema,table_name,column_name,column_default,is_nullable,data_type,character_maximum_length,character_set_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
||||
String queryForStructure = "SELECT column_name,column_default,is_nullable,data_type,character_maximum_length,udt_name FROM information_schema.COLUMNS WHERE table_name ='%1$s' and table_schema='%2$s';";
|
||||
|
||||
return queryForStructure;
|
||||
|
||||
}
|
||||
|
||||
// Method that returns the query to show the create statement
|
||||
@Override
|
||||
protected String getQueryForIndexes(SessionFactory dbSession)
|
||||
throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
String queryForIndexes = "SELECT tc.constraint_name,"
|
||||
+ "tc.constraint_type,tc.table_name,kcu.column_name,tc.is_deferrable,tc.initially_deferred,rc.match_option AS match_type,rc.update_rule AS on_update,"
|
||||
+ "rc.delete_rule AS on_delete,ccu.table_name AS references_table,ccu.column_name AS references_field FROM information_schema.table_constraints tc "
|
||||
+ "LEFT JOIN information_schema.key_column_usage kcu ON tc.constraint_catalog = kcu.constraint_catalog AND tc.constraint_schema = kcu.constraint_schema AND tc.constraint_name = kcu.constraint_name "
|
||||
+ "LEFT JOIN information_schema.referential_constraints rc ON tc.constraint_catalog = rc.constraint_catalog AND tc.constraint_schema = rc.constraint_schema AND tc.constraint_name = rc.constraint_name "
|
||||
+ "LEFT JOIN information_schema.constraint_column_usage ccu ON rc.unique_constraint_catalog = ccu.constraint_catalog AND rc.unique_constraint_schema = ccu.constraint_schema AND rc.unique_constraint_name = ccu.constraint_name "
|
||||
+ "where tc.table_name='%1$s' and tc.constraint_type<>'CHECK'";
|
||||
|
||||
return queryForIndexes;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package org.gcube.dataanalysis.databases.utils;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
//import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
//import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
//import org.hibernate.Query;
|
||||
//import org.hibernate.Session;
|
||||
//import org.hibernate.SessionFactory;
|
||||
import org.hibernate.transform.BasicTransformerAdapter;
|
||||
|
||||
/**
|
||||
* Class that allows to recover data from database through the class
|
||||
* BasicTransformerAdapter of Hibernate. It allows to retrieve columns names and
|
||||
* values.
|
||||
*/
|
||||
public class AliasToEntityOrderedMapResultTransformer extends
|
||||
BasicTransformerAdapter {
|
||||
|
||||
public static final AliasToEntityOrderedMapResultTransformer INSTANCE = new AliasToEntityOrderedMapResultTransformer();
|
||||
|
||||
/**
|
||||
* Disallow instantiation of AliasToEntityOrderedMapResultTransformer .
|
||||
*/
|
||||
private AliasToEntityOrderedMapResultTransformer() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public Object transformTuple(Object[] tuple, String[] aliases) {
|
||||
// linkedhashmap to get table column name in order
|
||||
Map result = new LinkedHashMap(tuple.length);
|
||||
for (int i = 0; i < tuple.length; i++) {
|
||||
String alias = aliases[i];
|
||||
if (alias != null) {
|
||||
result.put(alias, tuple[i]);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public boolean isTransformedValueATupleElement(String[] aliases,
|
||||
int tupleLength) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialization hook for ensuring singleton uniqueing.
|
||||
*
|
||||
* @return The singleton instance : {@link #INSTANCE}
|
||||
*/
|
||||
private Object readResolve() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,250 @@
|
|||
package org.gcube.dataanalysis.databases.utils;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.FileTools;
|
||||
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.cfg.Configuration;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
/**
|
||||
* Class that allows to manage a database selected from a user. It performs to
|
||||
* set the database configuration, to connect to the database and finally to
|
||||
* execute a query.
|
||||
*/
|
||||
public class ConnectionManager {
|
||||
|
||||
// private org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory df;
|
||||
|
||||
// Constructor
|
||||
public ConnectionManager() {
|
||||
|
||||
// org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory df = new
|
||||
// org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory();
|
||||
// df = new org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory();
|
||||
|
||||
}
|
||||
|
||||
// create the database's connection without using the configuration file but
|
||||
// using the data input
|
||||
public SessionFactory initDBConnection(AlgorithmConfiguration config) {
|
||||
|
||||
SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
|
||||
|
||||
return dbconnection;
|
||||
|
||||
}
|
||||
|
||||
// create the database's connection using the configuration file
|
||||
public SessionFactory initDBConnection(String configurationFile)
|
||||
throws Exception {
|
||||
String xml = FileTools.readXMLDoc(configurationFile);
|
||||
SessionFactory DBSessionFactory = null;
|
||||
Configuration cfg = new Configuration();
|
||||
cfg = cfg.configure(DocumentBuilderFactory.newInstance()
|
||||
.newDocumentBuilder()
|
||||
.parse(new ByteArrayInputStream(xml.getBytes())));
|
||||
DBSessionFactory = cfg.buildSessionFactory();
|
||||
return DBSessionFactory;
|
||||
}
|
||||
|
||||
/** Method that allows to set the configuration */
|
||||
public AlgorithmConfiguration setconfiguration(String ConfigPath,
|
||||
String DatabaseUserName, String DatabasePassword,
|
||||
String DatabaseDriver, String DatabaseDialect, String DatabaseURL,
|
||||
String DatabaseName) throws IOException {
|
||||
|
||||
AlgorithmConfiguration config = new AlgorithmConfiguration();
|
||||
|
||||
if (DatabaseName.equals("")) {
|
||||
|
||||
throw new MalformedURLException(
|
||||
"Invalid Url: the database's name is not present");
|
||||
// return null;
|
||||
}
|
||||
|
||||
if (!ConfigPath.equals(""))
|
||||
config.setConfigPath(ConfigPath);
|
||||
|
||||
if (!DatabaseUserName.equals("")) {
|
||||
config.setParam("DatabaseUserName", DatabaseUserName);
|
||||
}
|
||||
|
||||
if (!DatabasePassword.equals(""))
|
||||
config.setParam("DatabasePassword", DatabasePassword);
|
||||
|
||||
if (!DatabaseDriver.equals(""))
|
||||
config.setParam("DatabaseDriver", DatabaseDriver);
|
||||
|
||||
if (!DatabaseDialect.equals(""))
|
||||
config.setParam("DatabaseDialect", DatabaseDialect);
|
||||
|
||||
if (!DatabaseURL.equals(""))
|
||||
config.setParam("DatabaseURL", DatabaseURL);
|
||||
|
||||
return config;
|
||||
|
||||
}
|
||||
|
||||
/** Method that execute a query */
|
||||
public List<Object> executeQuery(String query,
|
||||
SessionFactory DBSessionFactory) throws Exception {
|
||||
|
||||
List<Object> obj = null;
|
||||
Session ss = null;
|
||||
|
||||
try {
|
||||
ss = DBSessionFactory.getCurrentSession();
|
||||
|
||||
ss.beginTransaction();
|
||||
|
||||
Query qr = null;
|
||||
|
||||
// statement to check if the query is a "show create table"
|
||||
String keyword = "show create table";
|
||||
|
||||
String regex = ".*\\b" + keyword.replaceAll(" +", "[ ]\\+")
|
||||
+ "\\b.*";
|
||||
|
||||
if ((!(query.toLowerCase().contains("explain")))
|
||||
&& (!(query.toLowerCase().matches(regex)))) { // it does not
|
||||
// work if the
|
||||
// query
|
||||
// performs an
|
||||
// explain
|
||||
// operation
|
||||
|
||||
// Wrapper for a query. It allows the query to operate in a
|
||||
// proper
|
||||
// way
|
||||
|
||||
// query check in order to remove the character ";" if the query
|
||||
// contains it
|
||||
|
||||
query = query.trim();
|
||||
|
||||
if (query.endsWith(";")) {
|
||||
|
||||
int endIndex = query.indexOf(";");
|
||||
|
||||
query = query.substring(0, endIndex);
|
||||
|
||||
}
|
||||
|
||||
query = "select * from (" + query + ") as query";
|
||||
|
||||
}
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In ConnectionManager-> executing query: " + query);
|
||||
|
||||
qr = ss.createSQLQuery(query);
|
||||
|
||||
qr.setResultTransformer(AliasToEntityOrderedMapResultTransformer.INSTANCE);
|
||||
|
||||
// @SuppressWarnings("unchecked")
|
||||
List<Object> result = qr.list();
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In ConnectionManager-> result's size: " + result.size());
|
||||
|
||||
ss.getTransaction().commit();
|
||||
|
||||
/*
|
||||
* if (result == null) System.out.println(
|
||||
* "Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object"
|
||||
* );
|
||||
*
|
||||
* if (result != null && result.size() == 0)
|
||||
* System.out.println(String.format("found nothing in database"));
|
||||
*/
|
||||
|
||||
if (result != null && result.size() != 0) {
|
||||
|
||||
obj = result;
|
||||
|
||||
} else {
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"ConnectionManager->Error: Result not available");
|
||||
|
||||
throw new Exception("Result not available");
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
// e.printStackTrace();
|
||||
|
||||
// System.out.println(String.format("Error while executing query: %1$s %2$s",
|
||||
// query, e.getMessage()));
|
||||
// e.printStackTrace();
|
||||
// System.out.println(String.format("Error while executing query: %1$s %2$s",
|
||||
// query, e.getMessage()));
|
||||
|
||||
if (e.getClass().toString()
|
||||
.contains("org.hibernate.MappingException")) {
|
||||
|
||||
// e.printStackTrace();
|
||||
|
||||
// System.out.println(e.getClass().toString());
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("In ConnectionManager-> ERROR The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
||||
|
||||
throw new Exception(
|
||||
"The query could not be executed: Error in retrieving a user defined type. Try to use a store procedure to convert the type");
|
||||
}
|
||||
|
||||
if (e.getClass().toString()
|
||||
.contains("org.hibernate.exception.SQLGrammarException")) {
|
||||
|
||||
// System.out.println(e.getCause().getMessage());
|
||||
|
||||
// AnalysisLogger.getLogger().debug("In ConnectionManager-> ERROR The query could not be executed: SQL grammar error in the query");
|
||||
|
||||
// throw new
|
||||
// Exception("The query could not be executed: SQL grammar error in the query");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In ConnectionManager-> "
|
||||
+ e.getCause().getLocalizedMessage());
|
||||
throw new Exception(e.getCause().getMessage());
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
throw e;
|
||||
|
||||
}
|
||||
|
||||
// throw e;
|
||||
}
|
||||
|
||||
return obj;
|
||||
|
||||
}
|
||||
|
||||
// /** Method that creates the connection */
|
||||
// public SessionFactory createConnection(AlgorithmConfiguration config) {
|
||||
//
|
||||
// SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
|
||||
//
|
||||
// return dbconnection;
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
|
@ -0,0 +1,189 @@
|
|||
package org.gcube.dataanalysis.databases.utils;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.FileTools;
|
||||
import org.hibernate.MappingException;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.cfg.Configuration;
|
||||
|
||||
/** Class that allows to connect to a database and to execute a query */
|
||||
public class DatabaseFactory {
|
||||
|
||||
// Method that establish a connection with the database
|
||||
public static SessionFactory initDBConnection(String configurationFile)
|
||||
throws Exception {
|
||||
String xml = FileTools.readXMLDoc(configurationFile);
|
||||
SessionFactory DBSessionFactory = null;
|
||||
Configuration cfg = new Configuration();
|
||||
cfg = cfg.configure(DocumentBuilderFactory.newInstance()
|
||||
.newDocumentBuilder()
|
||||
.parse(new ByteArrayInputStream(xml.getBytes())));
|
||||
DBSessionFactory = cfg.buildSessionFactory();
|
||||
return DBSessionFactory;
|
||||
}
|
||||
|
||||
// Method that execute the query
|
||||
public static List<Object> executeSQLQuery(String query,
|
||||
SessionFactory DBSessionFactory) throws Exception {
|
||||
// System.out.println("QUERY: "+query);
|
||||
try {
|
||||
return executeHQLQuery(query, DBSessionFactory, true);
|
||||
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static List<Object> executeHQLQuery(String query,
|
||||
SessionFactory DBSessionFactory, boolean useSQL) throws Exception,
|
||||
MappingException {
|
||||
Session ss = null;
|
||||
List<Object> obj = null;
|
||||
|
||||
try {
|
||||
|
||||
ss = DBSessionFactory.getCurrentSession();
|
||||
|
||||
ss.beginTransaction();
|
||||
|
||||
Query qr = null;
|
||||
|
||||
if (useSQL)
|
||||
qr = ss.createSQLQuery(query);
|
||||
else
|
||||
qr = ss.createQuery(query);
|
||||
|
||||
List<Object> result = null;
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In DatabaseFactory->" + qr.getQueryString());
|
||||
try {
|
||||
result = qr.list();
|
||||
ss.getTransaction().commit();
|
||||
|
||||
if (result == null)
|
||||
System.out
|
||||
.println("Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object");
|
||||
|
||||
// if (result != null && result.size() == 0)
|
||||
// System.out.println(String.format("found nothing in database for query: "+query));
|
||||
|
||||
if (result != null && result.size() != 0) {
|
||||
obj = result;
|
||||
}
|
||||
|
||||
rollback(ss);
|
||||
|
||||
return obj;
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
|
||||
if (e.getClass()
|
||||
.toString()
|
||||
.contains("org.hibernate.exception.SQLGrammarException")) {
|
||||
|
||||
// System.out.println(e.getCause().getMessage());
|
||||
|
||||
// AnalysisLogger.getLogger().debug("In ConnectionManager-> ERROR The query could not be executed: SQL grammar error in the query");
|
||||
|
||||
// throw new
|
||||
// Exception("The query could not be executed: SQL grammar error in the query");
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"In DatabaseFactory-> "
|
||||
+ e.getCause().getLocalizedMessage());
|
||||
throw new Exception(e.getCause().getMessage());
|
||||
|
||||
}
|
||||
|
||||
// if (e.getClass()
|
||||
// .toString()
|
||||
// .contains(
|
||||
// "com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException"))
|
||||
// {
|
||||
//
|
||||
// // System.out.println(e.getClass().toString());
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In DatabaseFactory-> "
|
||||
// + e.getCause().getLocalizedMessage());
|
||||
//
|
||||
// throw new Exception(e.getCause().getMessage());
|
||||
// }
|
||||
|
||||
else {
|
||||
throw e;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
throw e;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void rollback(Session ss) {
|
||||
|
||||
try {
|
||||
if (ss != null && ss.getTransaction() != null)
|
||||
ss.getTransaction().rollback();
|
||||
} catch (Exception ex) {
|
||||
// throw ex;
|
||||
|
||||
} finally {
|
||||
try {
|
||||
ss.close();
|
||||
} catch (Exception ee) {
|
||||
|
||||
// throw ee;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public static void executeSQLUpdate(String query, SessionFactory
|
||||
// DBSessionFactory) throws Exception {
|
||||
// executeHQLUpdate(query, DBSessionFactory, true);
|
||||
// }
|
||||
|
||||
// public static void executeHQLUpdate(String query, SessionFactory
|
||||
// DBSessionFactory, boolean useSQL) throws Exception{
|
||||
// // System.out.println("executing query: " + query);
|
||||
// Session ss = null;
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// ss = DBSessionFactory.getCurrentSession();
|
||||
// // System.out.println("executing query");
|
||||
// ss.beginTransaction();
|
||||
// Query qr = null;
|
||||
//
|
||||
// if (useSQL)
|
||||
// qr = ss.createSQLQuery(query);
|
||||
// else
|
||||
// qr = ss.createQuery(query);
|
||||
//
|
||||
// qr.executeUpdate();
|
||||
// ss.getTransaction().commit();
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// AnalysisLogger.getLogger().debug(query);
|
||||
// rollback(ss);
|
||||
// // e.printStackTrace();
|
||||
// throw e;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,247 @@
|
|||
package org.gcube.dataanalysis.databases.utils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.math.BigInteger;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
import org.dom4j.Document;
|
||||
import org.dom4j.Node;
|
||||
import org.dom4j.io.SAXReader;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.hibernate.SessionFactory;
|
||||
|
||||
/** Class that allows to performs some operations on a database */
|
||||
public class DatabaseOperations {
|
||||
|
||||
private String DBType = ""; // database's type
|
||||
|
||||
// private static final String QueryPostgres =
|
||||
// "select count(*) from \"%1$s\" limit 1";
|
||||
private static final String QueryPostgres = "select count(*) from (select * from \"%1$s\" limit 1) as a";
|
||||
private static final String QueryMysql = "select count(*) from (select * from `%1$s` limit 1) as a";
|
||||
// private static final String QueryMysql =
|
||||
// "select count(*) from `%1$s` limit 1";
|
||||
|
||||
// private static final String Query = "select * from %1$s limit 1";
|
||||
// private static final String countQuery = "select count(*) from %1$s";
|
||||
// private static final String explainQuery = "explain select * from %1$s";
|
||||
private static final String explainQueryPostgres = "explain select * from \"%1$s\"";
|
||||
private static final String explainQueryMysql = "explain select * from `%1$s`";
|
||||
|
||||
private static final String MYSQL = "MySQL";
|
||||
private static final String POSTGRES = "Postgres";
|
||||
|
||||
// Method that recover the schema's name of the database.
|
||||
public String getDBSchema(String configurationFile) throws Exception {
|
||||
|
||||
File fl = new File(configurationFile);
|
||||
FileInputStream stream = new FileInputStream(fl);
|
||||
|
||||
SAXReader saxReader = new SAXReader();
|
||||
Document document = saxReader.read(stream);
|
||||
|
||||
List<Node> nodes = document
|
||||
.selectNodes("//hibernate-configuration/session-factory/property");
|
||||
|
||||
Iterator<Node> nodesIterator = nodes.iterator();
|
||||
|
||||
String dbschema = "";
|
||||
while (nodesIterator.hasNext()) {
|
||||
|
||||
Node currentnode = nodesIterator.next();
|
||||
String element = currentnode.valueOf("@name");
|
||||
if (element.equals("connection.url")) {
|
||||
String url = currentnode.getText();
|
||||
dbschema = url.substring(url.lastIndexOf("/") + 1);
|
||||
if (dbschema.indexOf('?') > 0)
|
||||
dbschema = dbschema.substring(0, dbschema.indexOf('?'));
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"DatabaseOperations->recovering the database's name: "
|
||||
+ dbschema);
|
||||
|
||||
// DBType="MySQL";
|
||||
|
||||
// break;
|
||||
}
|
||||
|
||||
if (element.equals("connection.schemaname")) {
|
||||
String url = currentnode.getText();
|
||||
dbschema = url.substring(url.lastIndexOf("/") + 1);
|
||||
if (dbschema.indexOf('?') > 0)
|
||||
dbschema = dbschema.substring(0, dbschema.indexOf('?'));
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"DatabaseOperations->recovering the schema's name: "
|
||||
+ dbschema);
|
||||
DBType = POSTGRES;
|
||||
// break;
|
||||
|
||||
}
|
||||
|
||||
if (DBType.equals("")) {
|
||||
|
||||
DBType = MYSQL;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// close stream
|
||||
stream.close();
|
||||
|
||||
return dbschema;
|
||||
}
|
||||
|
||||
// Method that returns the database's type
|
||||
public String getDBType() {
|
||||
|
||||
return DBType;
|
||||
|
||||
}
|
||||
|
||||
// Method that calculate the estimated number of rows
|
||||
public long calculateElements(ConnectionManager connection,
|
||||
String dbType, String tablename, SessionFactory session)
|
||||
throws Exception {
|
||||
|
||||
long count = 0;
|
||||
|
||||
String countingQuery = null;
|
||||
|
||||
if (dbType.equals(POSTGRES)) {
|
||||
|
||||
countingQuery = String.format(QueryPostgres, tablename);
|
||||
|
||||
}
|
||||
if (dbType.equals(MYSQL)) {
|
||||
|
||||
countingQuery = String.format(QueryMysql, tablename);
|
||||
|
||||
}
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"DatabaseOperations->calculating rows' number with the query: "
|
||||
+ countingQuery);
|
||||
|
||||
List<Object> result;
|
||||
|
||||
// try {
|
||||
// result = DatabaseFactory.executeSQLQuery(countingQuery, session);
|
||||
|
||||
result = connection.executeQuery(countingQuery, session);
|
||||
|
||||
// if ((result != null) && (result.size() > 0)) {
|
||||
if (result != null) {
|
||||
|
||||
Object element = result.get(0);
|
||||
|
||||
ArrayList<Object> listvalues = new ArrayList<Object>(((LinkedHashMap<String, Object>) element).values());
|
||||
|
||||
|
||||
|
||||
// System.out.println("Dimension: " + result.size());
|
||||
|
||||
// Integer numElem = Integer.valueOf(result.get(0).toString());
|
||||
|
||||
// Long numElemvalue = Long.valueOf(result.get(0).toString());
|
||||
|
||||
Long numElemvalue = Long.valueOf(listvalues.get(0).toString());
|
||||
|
||||
long numElem = numElemvalue.longValue();
|
||||
|
||||
// if (numElem.intValue() == 0){ throw new
|
||||
// Exception("The table has not rows");}
|
||||
|
||||
if (numElem > 0) {
|
||||
|
||||
AnalysisLogger
|
||||
.getLogger()
|
||||
.debug("DatabaseOperations->the database has at least a row.Calculating rows' number through an estimation");
|
||||
|
||||
String explain = null;
|
||||
|
||||
if (dbType.equals(POSTGRES)) {
|
||||
|
||||
explain = String.format(explainQueryPostgres, tablename);
|
||||
|
||||
}
|
||||
if (dbType.equals(MYSQL)) {
|
||||
|
||||
explain = String.format(explainQueryMysql, tablename);
|
||||
|
||||
}
|
||||
|
||||
// call query with explain function
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"DatabaseOperations->calculating rows' number with the query: "
|
||||
+ explain);
|
||||
|
||||
List<Object> resultinfo;
|
||||
|
||||
// resultinfo = DatabaseFactory.executeSQLQuery(explain,
|
||||
// session);
|
||||
|
||||
resultinfo = connection.executeQuery(explain, session);
|
||||
|
||||
// recovery result
|
||||
|
||||
if (dbType.equals(MYSQL)) {
|
||||
|
||||
// Object[] resultArray = (Object[]) (resultinfo.get(0));
|
||||
|
||||
Object elem = resultinfo.get(0);
|
||||
|
||||
ArrayList<Object> values = new ArrayList<Object>(
|
||||
((LinkedHashMap<String, Object>) elem).values());
|
||||
|
||||
// //print check
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseOperations->VALUE: " + values);
|
||||
|
||||
BigInteger value = (BigInteger) values.get(8);
|
||||
|
||||
// BigInteger value = (BigInteger) resultArray[8];
|
||||
|
||||
count = value.longValue();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (dbType.equals(POSTGRES)) {
|
||||
|
||||
String var = resultinfo.get(0).toString();
|
||||
|
||||
int beginindex = var.indexOf("rows");
|
||||
|
||||
int lastindex = var.indexOf("width");
|
||||
|
||||
var = var.substring(beginindex + 5, lastindex - 1);
|
||||
|
||||
Long value = Long.valueOf(var);
|
||||
|
||||
count = value.longValue();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// } catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
|
||||
AnalysisLogger.getLogger().debug(
|
||||
"DatabaseOperations->rows' number calculated: " + count);
|
||||
|
||||
return count;
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
//package org.gcube.dataanalysis.databases.utilsold;
|
||||
//
|
||||
////import java.awt.List;
|
||||
//
|
||||
//import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
//import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils;
|
||||
//import org.hibernate.Query;
|
||||
//import org.hibernate.Session;
|
||||
//import org.hibernate.SessionFactory;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//import java.net.MalformedURLException;
|
||||
//import java.util.List;
|
||||
//
|
||||
///**
|
||||
// * Class that allows to manage a database selected from a user. It performs to
|
||||
// * set the database configuration, to connect to the database and finally to
|
||||
// * execute a query.
|
||||
// */
|
||||
//public class ConnectionManager {
|
||||
//
|
||||
// private org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory df;
|
||||
//
|
||||
//
|
||||
// public ConnectionManager() {
|
||||
//
|
||||
//// org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory df = new org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory();
|
||||
// df = new org.gcube.dataanalysis.ecoengine.utils.DatabaseFactory();
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// /** Method that allows to set the configuration */
|
||||
// public AlgorithmConfiguration setconfiguration(String ConfigPath,
|
||||
// String DatabaseUserName, String DatabasePassword,
|
||||
// String DatabaseDriver, String DatabaseDialect, String DatabaseURL,
|
||||
// String DatabaseName) throws IOException {
|
||||
//
|
||||
// AlgorithmConfiguration config = new AlgorithmConfiguration();
|
||||
//
|
||||
// if (DatabaseName.equals("")) {
|
||||
//
|
||||
// throw new MalformedURLException(
|
||||
// "Invalid Url: the database's name is not present");
|
||||
// // return null;
|
||||
// }
|
||||
//
|
||||
// if (!ConfigPath.equals(""))
|
||||
// config.setConfigPath(ConfigPath);
|
||||
//
|
||||
// if (!DatabaseUserName.equals("")) {
|
||||
// config.setParam("DatabaseUserName", DatabaseUserName);
|
||||
// }
|
||||
//
|
||||
// if (!DatabasePassword.equals(""))
|
||||
// config.setParam("DatabasePassword", DatabasePassword);
|
||||
//
|
||||
// if (!DatabaseDriver.equals(""))
|
||||
// config.setParam("DatabaseDriver", DatabaseDriver);
|
||||
//
|
||||
// if (!DatabaseDialect.equals(""))
|
||||
// config.setParam("DatabaseDialect", DatabaseDialect);
|
||||
//
|
||||
// if (!DatabaseURL.equals(""))
|
||||
// config.setParam("DatabaseURL", DatabaseURL);
|
||||
//
|
||||
// return config;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// /** Method that creates the connection */
|
||||
// public SessionFactory createConnection(AlgorithmConfiguration config) {
|
||||
//
|
||||
// SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
|
||||
//
|
||||
// return dbconnection;
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// // public List <Object> executeQuery(String query, SessionFactory
|
||||
// // DBSessionFactory){
|
||||
// //
|
||||
// // List <Object> obj = null;
|
||||
// //
|
||||
// //
|
||||
// //
|
||||
// // return obj;
|
||||
// // }
|
||||
// //
|
||||
//
|
||||
// /** Method that execute a query */
|
||||
// public List<Object> executeQuery(String query,
|
||||
// SessionFactory DBSessionFactory) throws Exception {
|
||||
//
|
||||
// List<Object> obj = null;
|
||||
// Session ss = null;
|
||||
//
|
||||
// try {
|
||||
// ss = DBSessionFactory.getCurrentSession();
|
||||
//
|
||||
// ss.beginTransaction();
|
||||
//
|
||||
// Query qr = null;
|
||||
//
|
||||
// // Wrapper for a query. It allows the query to operate in a proper
|
||||
// // way
|
||||
// query = "select * from (" + query + ") as query";
|
||||
//
|
||||
// qr = ss.createSQLQuery(query);
|
||||
//
|
||||
// List<Object> result = qr.list();
|
||||
//
|
||||
// ss.getTransaction().commit();
|
||||
//
|
||||
// /*
|
||||
// * if (result == null) System.out.println(
|
||||
// * "Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object"
|
||||
// * );
|
||||
// *
|
||||
// * if (result != null && result.size() == 0)
|
||||
// * System.out.println(String.format("found nothing in database"));
|
||||
// */
|
||||
// if (result != null && result.size() != 0) {
|
||||
// obj = result;
|
||||
// }
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
//
|
||||
// // System.out.println(String.format("Error while executing query: %1$s %2$s",
|
||||
// // query, e.getMessage()));
|
||||
// // e.printStackTrace();
|
||||
// // System.out.println(String.format("Error while executing query: %1$s %2$s",
|
||||
// // query, e.getMessage()));
|
||||
// throw e;
|
||||
// }
|
||||
//
|
||||
// return obj;
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,160 @@
|
|||
//package org.gcube.dataanalysis.databases.utilsold;
|
||||
//
|
||||
//import java.io.ByteArrayInputStream;
|
||||
//import java.util.List;
|
||||
//
|
||||
//import javax.xml.parsers.DocumentBuilderFactory;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.FileTools;
|
||||
//import org.hibernate.Query;
|
||||
//import org.hibernate.Session;
|
||||
//import org.hibernate.SessionFactory;
|
||||
//import org.hibernate.cfg.Configuration;
|
||||
//
|
||||
//
|
||||
///** Class that allows to connect to a database and to execute a query */
|
||||
//public class DatabaseFactory {
|
||||
//
|
||||
//
|
||||
// //Method that establish a connection with the database
|
||||
// public static SessionFactory initDBConnection(String configurationFile) throws Exception {
|
||||
// String xml = FileTools.readXMLDoc(configurationFile);
|
||||
// SessionFactory DBSessionFactory = null;
|
||||
// Configuration cfg = new Configuration();
|
||||
// cfg = cfg.configure(DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes())));
|
||||
// DBSessionFactory = cfg.buildSessionFactory();
|
||||
// return DBSessionFactory;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Method that execute the query
|
||||
// public static List<Object> executeSQLQuery(String query, SessionFactory DBSessionFactory) throws Exception {
|
||||
//// System.out.println("QUERY: "+query);
|
||||
// try {
|
||||
// return executeHQLQuery(query, DBSessionFactory, true);
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
// throw e;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// public static List<Object> executeHQLQuery(String query, SessionFactory DBSessionFactory, boolean useSQL) throws Exception{
|
||||
// Session ss = null;
|
||||
// List<Object> obj = null;
|
||||
//
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// ss = DBSessionFactory.getCurrentSession();
|
||||
//
|
||||
// ss.beginTransaction();
|
||||
//
|
||||
// Query qr = null;
|
||||
//
|
||||
// if (useSQL)
|
||||
// qr = ss.createSQLQuery(query);
|
||||
// else
|
||||
// qr = ss.createQuery(query);
|
||||
//
|
||||
// List<Object> result = null;
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("DatabaseFactory->"+qr.getQueryString());
|
||||
// try {
|
||||
// result = qr.list();
|
||||
// ss.getTransaction().commit();
|
||||
//
|
||||
// if (result == null)
|
||||
// System.out.println("Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object");
|
||||
//
|
||||
//// if (result != null && result.size() == 0)
|
||||
//// System.out.println(String.format("found nothing in database for query: "+query));
|
||||
//
|
||||
// if (result != null && result.size() != 0) {
|
||||
// obj = result;
|
||||
// }
|
||||
//
|
||||
// rollback(ss);
|
||||
//
|
||||
// return obj;
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
// throw e;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
//
|
||||
// throw e;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// public static void rollback(Session ss) {
|
||||
//
|
||||
// try {
|
||||
// if (ss != null && ss.getTransaction() != null)
|
||||
// ss.getTransaction().rollback();
|
||||
// } catch (Exception ex) {
|
||||
//
|
||||
// } finally {
|
||||
// try {
|
||||
// ss.close();
|
||||
// } catch (Exception ee) {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//// public static void executeSQLUpdate(String query, SessionFactory DBSessionFactory) throws Exception {
|
||||
//// executeHQLUpdate(query, DBSessionFactory, true);
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//// public static void executeHQLUpdate(String query, SessionFactory DBSessionFactory, boolean useSQL) throws Exception{
|
||||
////// System.out.println("executing query: " + query);
|
||||
//// Session ss = null;
|
||||
////
|
||||
//// try {
|
||||
////
|
||||
//// ss = DBSessionFactory.getCurrentSession();
|
||||
////// System.out.println("executing query");
|
||||
//// ss.beginTransaction();
|
||||
//// Query qr = null;
|
||||
////
|
||||
//// if (useSQL)
|
||||
//// qr = ss.createSQLQuery(query);
|
||||
//// else
|
||||
//// qr = ss.createQuery(query);
|
||||
////
|
||||
//// qr.executeUpdate();
|
||||
//// ss.getTransaction().commit();
|
||||
////
|
||||
//// } catch (Exception e) {
|
||||
//// AnalysisLogger.getLogger().debug(query);
|
||||
//// rollback(ss);
|
||||
////// e.printStackTrace();
|
||||
//// throw e;
|
||||
//// }
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,207 @@
|
|||
//package org.gcube.dataanalysis.databases.utilsold;
|
||||
//
|
||||
//import java.math.BigInteger;
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.List;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
////import org.gcube.databasemanagement.DBAdapter;
|
||||
//import org.gcube.dataanalysis.databases.structure.MySQLTableStructure;
|
||||
//import org.gcube.dataanalysis.databases.structure.AbstractTableStructure;
|
||||
//import org.gcube.dataanalysis.databases.structure.PostgresTableStructure;
|
||||
////import org.gcube.contentmanagement.databases.structure.MySQLTableStructure;
|
||||
//import org.hibernate.SessionFactory;
|
||||
//
|
||||
//
|
||||
///** Class that allows manage a database offering several functionalities */
|
||||
//public class DatabaseManagement {
|
||||
//
|
||||
// // AbstractTableStructure crossTableStructure;
|
||||
// private List<String> tablesname = new ArrayList<String>();
|
||||
// private String configPath;
|
||||
// private String sourceSchemaName;
|
||||
// private SessionFactory sourceDBSession;
|
||||
// private String DBType;
|
||||
// private AbstractTableStructure crossTableStructure;
|
||||
// // private DBAdapter typesMap;
|
||||
// private DatabaseOperations op = new DatabaseOperations();
|
||||
//// private String destinationDBType;
|
||||
//// private String sourceDBType;
|
||||
// MySQLTableStructure mysqlobj;
|
||||
//
|
||||
// private static final String MYSQL = "MySQL";
|
||||
// private static final String POSTGRES = "Postgres";
|
||||
// private static final String selectTablesQuery = "SELECT distinct table_name FROM information_schema.COLUMNS where table_schema='%1$s';";
|
||||
// private static final String listSchemaNameQuery="select schema_name from information_schema.schemata where schema_name <> 'information_schema' and schema_name !~ E'^pg_'";
|
||||
//
|
||||
// public DatabaseManagement(String cfgDir, String SourceFile)
|
||||
// throws Exception {
|
||||
//
|
||||
// configPath = cfgDir;
|
||||
// if (!configPath.endsWith("/"))
|
||||
// configPath += "/";
|
||||
//
|
||||
// sourceSchemaName = op.getDBSchema(configPath + SourceFile);
|
||||
//
|
||||
// sourceDBSession = DatabaseFactory.initDBConnection(configPath
|
||||
// + SourceFile);
|
||||
//
|
||||
//
|
||||
//// destinationDBType = POSTGRES;
|
||||
//// sourceDBType = MYSQL;
|
||||
////
|
||||
//// // typesMap = new DBAdapter(configPath + "/" + sourceDBType + "2"
|
||||
//// // + destinationDBType + ".properties");
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Get the table's names
|
||||
// public List<String> getTables() throws Exception {
|
||||
//
|
||||
// String query = String.format(selectTablesQuery, sourceSchemaName);
|
||||
//
|
||||
// List<Object> resultSet = DatabaseFactory.executeSQLQuery(query,
|
||||
// sourceDBSession);
|
||||
//
|
||||
// for (Object result : resultSet) {
|
||||
// tablesname.add((String) result);
|
||||
// }
|
||||
//
|
||||
// // Get the Database's type
|
||||
// DBType = op.getDBType();
|
||||
//
|
||||
// return tablesname;
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// //Get the schema's name for the database Postgres
|
||||
// public List<String> getSchemas() throws Exception{
|
||||
//
|
||||
// // Get the Database's type
|
||||
// DBType = op.getDBType();
|
||||
//
|
||||
// List<String> list= new ArrayList<String>();
|
||||
//
|
||||
//
|
||||
//
|
||||
// if (DBType.equals(POSTGRES)) {
|
||||
//
|
||||
//
|
||||
// List<Object> resultSet = DatabaseFactory.executeSQLQuery(listSchemaNameQuery,
|
||||
// sourceDBSession);
|
||||
//
|
||||
// for (Object result : resultSet) {
|
||||
// list.add((String) result);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (DBType.equals(MYSQL)){
|
||||
//
|
||||
// list=null;
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// return list;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Get the "Create Table" statement
|
||||
// public String getCreateTable(String tablename) throws Exception {
|
||||
//
|
||||
// String createstatement = "";
|
||||
//
|
||||
// if (DBType.equals(POSTGRES)) {
|
||||
//
|
||||
// // for (String table : tablesname) {
|
||||
//
|
||||
// crossTableStructure = getSourceTableObject(tablename);
|
||||
//
|
||||
// String tableBuildQuery = crossTableStructure.buildUpCreateTable();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseManagement->'Create Table' statement: "
|
||||
// + tableBuildQuery);
|
||||
//
|
||||
// // }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (DBType.equals(MYSQL)) {
|
||||
//
|
||||
// // for (String table : tablesname) {
|
||||
//
|
||||
// crossTableStructure = getSourceTableObject(tablename);
|
||||
//
|
||||
// try {
|
||||
//
|
||||
// String createtablestatement = mysqlobj
|
||||
// .showCreateTable(sourceDBSession);
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseManagement->'Create Table' statement: "
|
||||
// + createtablestatement);
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseManagement->Exception: " + e.getMessage());
|
||||
// }
|
||||
//
|
||||
// // }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// return createstatement;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Method that create the database object
|
||||
// private AbstractTableStructure getSourceTableObject(String tablename)
|
||||
// throws Exception {
|
||||
//
|
||||
// if (DBType.equals(MYSQL)) {
|
||||
//
|
||||
// mysqlobj = new MySQLTableStructure(sourceSchemaName, tablename,
|
||||
// sourceDBSession);
|
||||
//
|
||||
// // mysqlobj = new MySQLTableStructure(sourceSchemaName, tablename,
|
||||
// // typesMap, sourceDBSession);
|
||||
//
|
||||
// // return new MySQLTableStructure(sourceSchemaName, tablename,
|
||||
// // typesMap, sourceDBSession);
|
||||
// return mysqlobj;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// else if (DBType.equals(POSTGRES)) {
|
||||
//
|
||||
// PostgresTableStructure postobj = new PostgresTableStructure(
|
||||
// sourceSchemaName, tablename, sourceDBSession);
|
||||
//
|
||||
// // PostgresTableStructure postobj = new PostgresTableStructure(
|
||||
// // sourceSchemaName, tablename, typesMap, sourceDBSession);
|
||||
//
|
||||
// return postobj;
|
||||
//
|
||||
// } else {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Method that returns the estimated number of rows
|
||||
// public BigInteger getNumberOfRows(String tablename) throws Exception {
|
||||
//
|
||||
// BigInteger rows;
|
||||
//
|
||||
// rows = op.calculateElements(tablename, sourceDBSession);
|
||||
// return rows;
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,156 @@
|
|||
//package org.gcube.dataanalysis.databases.utilsold;
|
||||
//
|
||||
//import java.io.File;
|
||||
//import java.io.FileInputStream;
|
||||
//import java.math.BigInteger;
|
||||
//import java.util.Iterator;
|
||||
//import java.util.List;
|
||||
//
|
||||
//import org.dom4j.Document;
|
||||
//import org.dom4j.Node;
|
||||
//import org.dom4j.io.SAXReader;
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.hibernate.SessionFactory;
|
||||
//
|
||||
///** Class that allows to performs some operations on a database */
|
||||
//public class DatabaseOperations {
|
||||
//
|
||||
// private String DBType = ""; //database's type
|
||||
//
|
||||
// private static final String Query = "select * from %1$s limit 1";
|
||||
// // private static final String countQuery = "select count(*) from %1$s";
|
||||
// private static final String explainQuery = "explain select * from %1$s";
|
||||
//
|
||||
// private static final String MYSQL = "MySQL";
|
||||
// private static final String POSTGRES = "Postgres";
|
||||
//
|
||||
//
|
||||
// //Method that recover the schema's name of the database.
|
||||
// public String getDBSchema(String configurationFile) throws Exception {
|
||||
//
|
||||
// File fl = new File(configurationFile);
|
||||
// FileInputStream stream = new FileInputStream(fl);
|
||||
//
|
||||
// SAXReader saxReader = new SAXReader();
|
||||
// Document document = saxReader.read(stream);
|
||||
//
|
||||
// List<Node> nodes = document
|
||||
// .selectNodes("//hibernate-configuration/session-factory/property");
|
||||
//
|
||||
// Iterator<Node> nodesIterator = nodes.iterator();
|
||||
//
|
||||
// String dbschema = "";
|
||||
// while (nodesIterator.hasNext()) {
|
||||
//
|
||||
// Node currentnode = nodesIterator.next();
|
||||
// String element = currentnode.valueOf("@name");
|
||||
// if (element.equals("connection.url")) {
|
||||
// String url = currentnode.getText();
|
||||
// dbschema = url.substring(url.lastIndexOf("/") + 1);
|
||||
// if (dbschema.indexOf('?') > 0)
|
||||
// dbschema = dbschema.substring(0, dbschema.indexOf('?'));
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseOperations-> recovering the database's name: " + dbschema);
|
||||
//
|
||||
//
|
||||
// // DBType="MySQL";
|
||||
//
|
||||
// // break;
|
||||
// }
|
||||
//
|
||||
// if (element.equals("connection.schemaname")) {
|
||||
// String url = currentnode.getText();
|
||||
// dbschema = url.substring(url.lastIndexOf("/") + 1);
|
||||
// if (dbschema.indexOf('?') > 0)
|
||||
// dbschema = dbschema.substring(0, dbschema.indexOf('?'));
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseOperations-> recovering the schema's name: " + dbschema);
|
||||
// DBType = POSTGRES;
|
||||
// // break;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (DBType.equals("")) {
|
||||
//
|
||||
// DBType = MYSQL;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // close stream
|
||||
// stream.close();
|
||||
//
|
||||
// return dbschema;
|
||||
// }
|
||||
//
|
||||
// //Method that returns the database's type
|
||||
// public String getDBType() {
|
||||
//
|
||||
// return DBType;
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //Method that calculate the estimated number of rows
|
||||
// public BigInteger calculateElements(String tablename, SessionFactory session) throws Exception{
|
||||
//
|
||||
// BigInteger count = BigInteger.ZERO;
|
||||
//
|
||||
// String countingQuery = String.format(Query, tablename);
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseOperations-> calculating rows' number with the query: " + countingQuery);
|
||||
//
|
||||
// List<Object> result;
|
||||
//
|
||||
//// try {
|
||||
// result = DatabaseFactory.executeSQLQuery(countingQuery, session);
|
||||
//
|
||||
// if ((result != null) && (result.size() > 0)) {
|
||||
//
|
||||
// // call query with explain function
|
||||
//
|
||||
// String explain = String.format(explainQuery, tablename);
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "DatabaseOperations-> calculating rows' number with the query: " + explain);
|
||||
//
|
||||
// List<Object> resultinfo;
|
||||
//
|
||||
// resultinfo = DatabaseFactory.executeSQLQuery(explain, session);
|
||||
//
|
||||
// // recovery result
|
||||
//
|
||||
// if (DBType.equals(MYSQL)) {
|
||||
//
|
||||
// Object[] resultArray = (Object[]) (resultinfo.get(0));
|
||||
//
|
||||
// count = (BigInteger) resultArray[8];
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (DBType.equals(POSTGRES)) {
|
||||
//
|
||||
// String var = resultinfo.get(0).toString();
|
||||
//
|
||||
// int beginindex = var.indexOf("rows");
|
||||
//
|
||||
// int lastindex = var.indexOf("width");
|
||||
//
|
||||
// var = var.substring(beginindex + 5, lastindex - 1);
|
||||
//
|
||||
// count = new BigInteger(var);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//// } catch (Exception e) {
|
||||
//// TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// }
|
||||
//
|
||||
// return count;
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1 @@
|
|||
< ャ@Qaj、F÷gク<67>
|
|
@ -0,0 +1,36 @@
|
|||
package org.gcube.dataanalysis.test;
|
||||
|
||||
import org.gcube.common.encryption.StringEncrypter;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
import org.gcube.dataanalysis.ecoengine.interfaces.StandardLocalExternalAlgorithm;
|
||||
|
||||
public class Prova {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
// AnalysisLogger.setLogger("./cfg/"+AlgorithmConfiguration.defaultLoggerFile);
|
||||
|
||||
// AnalysisLogger.getLogger().debug("ciao");
|
||||
|
||||
|
||||
ScopeProvider.instance.set("/gcube/devsec");
|
||||
|
||||
try {
|
||||
String password = StringEncrypter.getEncrypter().decrypt("UwNMZOK7FlIjGPR+NZCV6w==");
|
||||
|
||||
System.out.println(password);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
StandardLocalExternalAlgorithm sle = null;
|
||||
// System.out.println("CIAO");
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.dataanalysis.databases.utils.DatabaseManagement;
|
||||
//
|
||||
//public class RegressionRandomSampleOnTable {
|
||||
//
|
||||
// /**
|
||||
// * @param args
|
||||
// */
|
||||
// public static void main(String[] args) {
|
||||
// // TODO Auto-generated method stub
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Postgres");
|
||||
// testPostgres();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Mysql1");
|
||||
//// testMysql1();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Mysql2");
|
||||
//// testMysql2();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Mysql3");
|
||||
//// testMysql3();
|
||||
// }
|
||||
//
|
||||
// // Postgres database
|
||||
// private static void testPostgres() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection(
|
||||
// "postgres",
|
||||
// "d4science2",
|
||||
// "org.postgresql.Driver",
|
||||
// "org.hibernate.dialect.PostgreSQLDialect",
|
||||
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb",
|
||||
// "aquamapsdb");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.randomSampleOnTable("Divisions", "public");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In RegressionRandomSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Mysql database
|
||||
// private static void testMysql1() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection("root", "test", "com.mysql.jdbc.Driver",
|
||||
// "org.hibernate.dialect.MySQLDialect",
|
||||
// // "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
// "jdbc:mysql://146.48.87.169:3306/aquamaps", "hcaf_d");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.randomSampleOnTable("hcaf_d", "aquamaps");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In RegressionRandomSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Mysql database
|
||||
// private static void testMysql2() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection("root", "test", "com.mysql.jdbc.Driver",
|
||||
// "org.hibernate.dialect.MySQLDialect",
|
||||
// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
//// "jdbc:mysql://146.48.87.169:3306/aquamaps",
|
||||
// "example");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.randomSampleOnTable("example", "col2oct2010");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In RegressionRandomSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// //Mysql database
|
||||
// private static void testMysql3() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection("root", "test", "com.mysql.jdbc.Driver",
|
||||
// "org.hibernate.dialect.MySQLDialect",
|
||||
// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
//// "jdbc:mysql://146.48.87.169:3306/aquamaps",
|
||||
// "common_names");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.randomSampleOnTable("common_names", "col2oct2010");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In RegressionRandomSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,91 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.dataanalysis.databases.utils.DatabaseManagement;
|
||||
//import org.junit.rules.TestName;
|
||||
//
|
||||
//public class RegressionSmartSampleOnTable {
|
||||
//
|
||||
// // String [] testName = {"Postgres", "Mysql"};
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
// // TODO Auto-generated method stub
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Postgres");
|
||||
// testPostgres();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("Executing: " + "Mysql");
|
||||
//// testMysql();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Postgres database
|
||||
// private static void testPostgres() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection(
|
||||
// "postgres",
|
||||
// "d4science2",
|
||||
// "org.postgresql.Driver",
|
||||
// "org.hibernate.dialect.PostgreSQLDialect",
|
||||
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb",
|
||||
// "aquamapsdb");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.smartSampleOnTable("Divisions", "public");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In TestSmartSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // Mysql database
|
||||
// private static void testMysql() {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection("root", "test", "com.mysql.jdbc.Driver",
|
||||
// "org.hibernate.dialect.MySQLDialect",
|
||||
// // "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
// "jdbc:mysql://146.48.87.169:3306/aquamaps", "hcaf_d");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.smartSampleOnTable("hcaf_d", "aquamaps");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "In TestSampleOnTable->EXCEPTION: " + e);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,433 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||
//import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||
//
|
||||
//import java.io.BufferedReader;
|
||||
//import java.io.IOException;
|
||||
//import java.io.InputStreamReader;
|
||||
//import java.util.List;
|
||||
//import java.util.Scanner;
|
||||
//
|
||||
//import org.gcube.common.encryption.StringEncrypter;
|
||||
//import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
//import org.gcube.common.scope.api.ScopeProvider;
|
||||
//import org.gcube.dataanalysis.databases.resources.DBResource;
|
||||
//import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
//import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||
//import org.gcube.resources.discovery.client.queries.impl.XQuery;
|
||||
//import org.hibernate.SessionFactory;
|
||||
//
|
||||
//public class TestApp {
|
||||
//
|
||||
// /**
|
||||
// * @param args
|
||||
// */
|
||||
// public static void main(String[] args) {
|
||||
// // TODO Auto-generated method stub
|
||||
//
|
||||
//
|
||||
//// ScopeProvider.instance.set("/gcube/devsec/devVRE");
|
||||
// ScopeProvider.instance.set("/gcube/devsec");
|
||||
//
|
||||
//
|
||||
//
|
||||
// XQuery query = queryFor(ServiceEndpoint.class);
|
||||
// query.addCondition("$resource/Profile/Category/text() eq 'Database'");
|
||||
//
|
||||
// DiscoveryClient<DBResource> prova=clientFor(DBResource.class);
|
||||
// List<DBResource> access = prova.submit(query);
|
||||
//
|
||||
//
|
||||
// System.out.println("size resource: "+access.size());
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// for(int i=0;i<access.size();i++){
|
||||
//
|
||||
//
|
||||
// //access.get(i).parse();
|
||||
// System.out.println("{ ID: "+access.get(i).getID()
|
||||
// +" ResourceName: "+access.get(i).getResourceName()+" HostedOn: "+access.get(i).getHostedOn()
|
||||
// +" PlatformName: "+access.get(i).getPlatformName()+" PlatformVersion: "+access.get(i).getPlatformVersion()+" }");
|
||||
//
|
||||
// System.out.println();
|
||||
//
|
||||
// for (int j=0;j<access.get(i).getAccessPoints().size();j++){
|
||||
//
|
||||
//
|
||||
// System.out.println("############################# AccessPointInfo #################################");
|
||||
// System.out.println("Description: "+access.get(i).getAccessPoints().get(j).getDescription()
|
||||
// +"\n"+"Endpoint: "+access.get(i).getAccessPoints().get(j).address()
|
||||
// //+"\n"+"Port Number: "+access.get(i).getAccessPoints().get(j).getPort());
|
||||
// +"\n"+"Port Number: "+access.get(i).getPort());
|
||||
//// );
|
||||
//
|
||||
//
|
||||
// System.out.println("Username: "+access.get(i).getAccessPoints().get(j).getUsername()
|
||||
// +"\n"+"Password: "+access.get(i).getAccessPoints().get(j).getPassword()
|
||||
// +"\n"+"DatabaseName: "+access.get(i).getAccessPoints().get(j).getDatabaseName()
|
||||
// +"\n"+"Driver: "+access.get(i).getAccessPoints().get(j).getDriver()
|
||||
// +"\n"+"Dialect: "+access.get(i).getAccessPoints().get(j).getDialect()
|
||||
// +"\n"+"MaxConnections: "+access.get(i).getAccessPoints().get(j).getMaxConnections()
|
||||
// +"\n"+"Schema: "+access.get(i).getAccessPoints().get(j).getSchema()
|
||||
// +"\n"+"tableSpaceCount: "+access.get(i).getAccessPoints().get(j).getTableSpaceCount()
|
||||
// +"\n"+"tableSpacePrefix: "+access.get(i).getAccessPoints().get(j).getTableSpacePrefix());
|
||||
//
|
||||
//
|
||||
// //System.out.println("Dim: "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().size());
|
||||
//
|
||||
// if (access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().size()!=0){
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.out.println("AuxiliaryProperty: "+"'aquamapsWorldTable' "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().get("aquamapsWorldTable"));
|
||||
// System.out.println("AuxiliaryProperty: "+"'aquamapsDataStore' "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().get("aquamapsDataStore"));
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
//
|
||||
// //System.out.println("ID "+access.get(i).getID()+" User "+access.get(i).getTestData().size());
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// // Fase di Selezione del DB e Normalizzazione
|
||||
//
|
||||
// //access.get(2).normalize("//geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb");
|
||||
//
|
||||
//// access.get(1).normalize("jdbc:postgresql://statistical-manager.d.d4science.research-infrastructures.eu/testdb");
|
||||
//
|
||||
//
|
||||
// // retrieve the decrypted version
|
||||
//// try {
|
||||
//// String password = StringEncrypter.getEncrypter().decrypt("Db/lnp5cAPwrAfjqorqctA==");
|
||||
////
|
||||
//// System.out.println("password Obis: " +password);
|
||||
//// } catch (Exception e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// }
|
||||
////
|
||||
//
|
||||
//
|
||||
//
|
||||
// Scanner sc = new Scanner(System.in);
|
||||
//
|
||||
// System.out.println("Seleziona la risorsa database: inserisci un numero fra 0 e "+Integer.toString((access.size())-1));
|
||||
// System.out.println();
|
||||
//
|
||||
// String index_resource = sc.next();
|
||||
//
|
||||
// System.out.println("Ho letto: " + index_resource);
|
||||
//
|
||||
//
|
||||
// int resourceIndex= Integer.valueOf(index_resource).intValue();
|
||||
//
|
||||
//
|
||||
//// System.out.println("Inserisci l'Endpoint della risorsa");
|
||||
//// String Endpoint_value = sc.next();
|
||||
//
|
||||
//
|
||||
// System.out.println("Seleziona il database: inserisci un numero fra 0 e "+Integer.toString(access.get(resourceIndex).getAccessPoints().size()-1));
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
// String db_value = sc.next();
|
||||
//
|
||||
// System.out.println("Ho letto: " + db_value);
|
||||
//
|
||||
//
|
||||
// int dbIndex= Integer.valueOf(db_value).intValue();
|
||||
//
|
||||
// //access.get(resourceIndex).normalize(access.get(resourceIndex).getAccessPoints().get(dbIndex).address());
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Fase di Stampa
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// ///***** Da qui ho commentato
|
||||
//
|
||||
//// try {
|
||||
// access.get(resourceIndex).normalize(dbIndex);
|
||||
//
|
||||
//
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.out.println("---------------------------------------------------------------"+" Normalization: "+"-----------------------------------------------------");
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
// for(int i=0;i<access.size();i++){
|
||||
//
|
||||
//
|
||||
// //access.get(i).parse();
|
||||
// System.out.println("{ ID: "+access.get(i).getID()
|
||||
// +" ResourceName: "+access.get(i).getResourceName()+" HostedOn: "+access.get(i).getHostedOn()
|
||||
// +" PlatformName: "+access.get(i).getPlatformName()+" PlatformVersion: "+access.get(i).getPlatformVersion()+" }");
|
||||
//
|
||||
//
|
||||
// System.out.println();
|
||||
//
|
||||
// for (int j=0;j<access.get(i).getAccessPoints().size();j++){
|
||||
//
|
||||
//
|
||||
// System.out.println("############################# AccessPointInfo #################################");
|
||||
// System.out.println("Description: "+access.get(i).getAccessPoints().get(j).getDescription()
|
||||
// +"\n"+"Endpoint: "+access.get(i).getAccessPoints().get(j).address()
|
||||
// //+"\n"+"Port Number: "+access.get(i).getAccessPoints().get(j).getPort());
|
||||
// +"\n"+"Port Number: "+access.get(i).getPort());
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.out.println("Username: "+access.get(i).getAccessPoints().get(j).getUsername()
|
||||
// +"\n"+"Password: "+access.get(i).getAccessPoints().get(j).getPassword()
|
||||
// +"\n"+"DatabaseName: "+access.get(i).getAccessPoints().get(j).getDatabaseName()
|
||||
// +"\n"+"Driver: "+access.get(i).getAccessPoints().get(j).getDriver()
|
||||
// +"\n"+"Dialect: "+access.get(i).getAccessPoints().get(j).getDialect()
|
||||
// +"\n"+"MaxConnections: "+access.get(i).getAccessPoints().get(j).getMaxConnections()
|
||||
// +"\n"+"Schema: "+access.get(i).getAccessPoints().get(j).getSchema()
|
||||
// +"\n"+"tableSpaceCount: "+access.get(i).getAccessPoints().get(j).getTableSpaceCount()
|
||||
// +"\n"+"tableSpacePrefix: "+access.get(i).getAccessPoints().get(j).getTableSpacePrefix());
|
||||
//
|
||||
//
|
||||
// //System.out.println("Dim: "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().size());
|
||||
//
|
||||
// if (access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().size()!=0){
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
// System.out.println("AuxiliaryProperty: "+"'aquamapsWorldTable' "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().get("aquamapsWorldTable"));
|
||||
// System.out.println("AuxiliaryProperty: "+"'aquamapsDataStore' "+access.get(i).getAccessPoints().get(j).getAuxiliaryProperties().get("aquamapsDataStore"));
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// System.out.println();
|
||||
// System.out.println();
|
||||
//
|
||||
//
|
||||
//
|
||||
// //System.out.println("ID "+access.get(i).getID()+" User "+access.get(i).getTestData().size());
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.out.println("---------------------------------------------------------------"+" Database Query: "+"-----------------------------------------------------");
|
||||
//
|
||||
//// // Sottomissione query
|
||||
////
|
||||
//// System.out.println("Insert the Query");
|
||||
////
|
||||
////
|
||||
////
|
||||
////
|
||||
//// InputStreamReader is = new InputStreamReader(System.in);
|
||||
//// BufferedReader br = new BufferedReader(is);
|
||||
////
|
||||
//// String q="";
|
||||
//// try {
|
||||
//// q = br.readLine();
|
||||
//// } catch (IOException e1) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e1.printStackTrace();
|
||||
//// }
|
||||
////
|
||||
//// System.out.println("Letta: "+q);
|
||||
//
|
||||
//
|
||||
//
|
||||
// org.gcube.dataanalysis.databases.utilsold.ConnectionManager df=new org.gcube.dataanalysis.databases.utilsold.ConnectionManager();
|
||||
//
|
||||
//// AlgorithmConfiguration config=df.setconfiguration
|
||||
//// ("./cfg/", access.get(1).getAccessPoints().get(0).getUsername(), access.get(1).getAccessPoints().get(0).getPassword(),
|
||||
//// access.get(1).getAccessPoints().get(0).getDriver(), access.get(1).getAccessPoints().get(0).getDialect(),
|
||||
//// access.get(1).getAccessPoints().get(0).address());
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Codice funzionante
|
||||
//// AlgorithmConfiguration config=df.setconfiguration("./cfg/", "utente", "d4science", "org.postgresql.Driver","org.hibernate.dialect.MySQLDialect",
|
||||
//// "jdbc:postgresql://statistical-manager.d.d4science.research-infrastructures.eu:5432/testdb");
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// AlgorithmConfiguration config;
|
||||
// try {
|
||||
// config = df.setconfiguration("./cfg/", access.get(resourceIndex).getAccessPoints().get(dbIndex).getUsername(),
|
||||
// access.get(resourceIndex).getAccessPoints().get(dbIndex).getPassword(), access.get(resourceIndex).getAccessPoints().get(dbIndex).getDriver(), access.get(resourceIndex).getAccessPoints().get(dbIndex).getDialect(),
|
||||
// access.get(resourceIndex).getAccessPoints().get(dbIndex).address(), access.get(resourceIndex).getAccessPoints().get(dbIndex).getDatabaseName());
|
||||
//
|
||||
// SessionFactory sf=df.createConnection(config);
|
||||
//
|
||||
// boolean val=sf.isClosed();
|
||||
//
|
||||
// if (val!=true){
|
||||
//
|
||||
//
|
||||
// System.out.println("la connessione è attiva");
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
//
|
||||
//// if (config!=null){
|
||||
//
|
||||
//
|
||||
//// SessionFactory sf=df.createConnection(config);
|
||||
////
|
||||
//// boolean val=sf.isClosed();
|
||||
////
|
||||
//// if (val!=true){
|
||||
////
|
||||
////
|
||||
//// System.out.println("la connessione è attiva");
|
||||
////
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//// try {
|
||||
////// List<Object> rawnames = df.executeQuery("select * from (select a.field1 as aa, b.field1_id as bb, b.field1 as cc from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
////// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id) as cd", sf);
|
||||
////
|
||||
//// /*List<Object> rawnames = df.executeQuery("select * from (select a.field1, b.field1_id, b.field1 from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
//// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id) as cd", sf);*/
|
||||
////
|
||||
////// List<Object> rawnames = df.executeQuery("select a.field1 as aa, b.field1_id as bb, b.field1 as cc from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
////// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id)", sf);
|
||||
////
|
||||
////
|
||||
////
|
||||
////
|
||||
////
|
||||
//// //Query funzionante
|
||||
////
|
||||
////// List<Object> rawnames = df.executeQuery("select a.field1, b.field1_id from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
////// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id", sf);
|
||||
////
|
||||
////
|
||||
//// //Query non funzionante
|
||||
////// List<Object> rawnames = df.executeQuery("select a.field1, b.field1_id, b.field1 from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
////// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id", sf);
|
||||
////
|
||||
//// //Query funzionante con alias
|
||||
////
|
||||
////// List<Object> rawnames = df.executeQuery("select a.field1 as aa, b.field1_id as bb, b.field1 as cc from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
////// "left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id", sf);
|
||||
////
|
||||
//// //Query funzionante
|
||||
////// List<Object> rawnames = df.executeQuery("select a.source_data as sourceA, b.source_data as sourceB, a.target_data_scientific_name as targetA, b.target_data_scientific_name as tagertB " +
|
||||
////// "from bionymoutsimplefaked1csvpreprcsv as a join bionymoutfaked1csvpreprcsv as b on a.source_data=b.source_data limit 10",sf);
|
||||
////
|
||||
//// List<Object> rawnames = df.executeQuery(q,sf);
|
||||
////
|
||||
////
|
||||
//// System.out.println("***************************************************************");
|
||||
//// System.out.println();
|
||||
////
|
||||
//// System.out.println("Size: "+rawnames.size());
|
||||
// //
|
||||
//// for (int i = 0; i < rawnames.size(); i++) {
|
||||
// //
|
||||
//// Object[] row = (Object[]) rawnames.get(i);
|
||||
// //
|
||||
//// for (int j = 0; j < row.length; j++) {
|
||||
// //
|
||||
//// System.out.print("\"" + row[j] + "\"; ");
|
||||
// //
|
||||
//// }
|
||||
//// System.out.println();
|
||||
//// //System.out.println("Fine ");
|
||||
// //
|
||||
//// }
|
||||
////
|
||||
////
|
||||
////
|
||||
//// } catch (Exception e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// //e.printStackTrace();
|
||||
////
|
||||
//// System.out.println("***************************************************************");
|
||||
//// System.out.println();
|
||||
////
|
||||
//// String error=e.getCause().toString();
|
||||
////
|
||||
//// if (error.contains("MySQLSyntaxErrorException"))
|
||||
//// {
|
||||
////
|
||||
//// System.out.println("ERROR "+e.getMessage()+" "+"because an error is present: "+e.getCause().getMessage());
|
||||
//// System.out.println("Suggestion: insert an alias name for the columns");
|
||||
////
|
||||
////
|
||||
//// }
|
||||
////
|
||||
////
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//// }else {
|
||||
//// System.out.println("ERRORE: Non è possibile eseguire la connessione perchè l'indirizzo non è completo: databasename non dsiponibile");
|
||||
//// }8
|
||||
//
|
||||
//
|
||||
//
|
||||
//// } catch (IOException e1) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e1.printStackTrace();
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
//}
|
|
@ -0,0 +1,34 @@
|
|||
package org.gcube.dataanalysis.test;
|
||||
|
||||
/** Class that interacts with the IS in order to recover some information about the available databases and the contained data.
|
||||
* Once recovered the interested data he can import these in the database used by the SM.
|
||||
* */
|
||||
|
||||
public class TestDatabasesResourcesManager {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
|
||||
// the user sets the scope
|
||||
|
||||
|
||||
// the user views the available databases in the fixed scope
|
||||
|
||||
// the user selects a database
|
||||
|
||||
// the user wants to view some characteristics of the chosen database such as: the tables, rows' number and the create statement
|
||||
|
||||
// the user wants to recover data from a certain table so he submits a 'select' query on the database
|
||||
|
||||
// ?? the user create a table in the database's SM and import the recovered data
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
package org.gcube.dataanalysis.test;
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
import org.gcube.dataanalysis.databases.utils.DatabaseManagement;
|
||||
|
||||
|
||||
|
||||
/** Class that tests the code for the recovery of the tables */
|
||||
public class TestGetTables {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
|
||||
|
||||
|
||||
Scanner sc = new Scanner(System.in);
|
||||
|
||||
System.out.println("Specifica il nome del file di configurazione");
|
||||
|
||||
String configurationfile=sc.next();
|
||||
|
||||
//TODO: decommentare per la corretta esecuzione della classe
|
||||
// try {
|
||||
// DatabaseManagement obj=new DatabaseManagement("./cfg/", configurationfile);
|
||||
//
|
||||
//
|
||||
// //Retrieve the schema for the postgres database
|
||||
//
|
||||
// List <String> schemas=new ArrayList<String>();
|
||||
//
|
||||
// schemas=obj.getSchemas();
|
||||
//
|
||||
// if (schemas!=null){
|
||||
//
|
||||
// //test Print
|
||||
// for (int i=0;i<schemas.size();i++)
|
||||
// {
|
||||
//
|
||||
// System.out.println("Schema's name: "+ schemas.get(i));
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }
|
||||
// else{
|
||||
//
|
||||
//
|
||||
// System.out.println("il database nn ha schemi");
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// List <String> tables=new ArrayList<String>();
|
||||
//
|
||||
//
|
||||
// //Retrieve the table's names of the database
|
||||
// tables=obj.getTables();
|
||||
//
|
||||
//
|
||||
// //test print
|
||||
// for (int i=0;i<tables.size();i++)
|
||||
// {
|
||||
//
|
||||
// System.out.println(tables.get(i));
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Retrieve the "Create Table" statement
|
||||
// System.out.println("Specifica il nome della tabella");
|
||||
// String tablename=sc.next();
|
||||
//
|
||||
// String createtable=obj.getCreateTable(tablename);
|
||||
//
|
||||
//
|
||||
//
|
||||
// //View number of rows
|
||||
// try {
|
||||
//
|
||||
// BigInteger rows=obj.getNumberOfRows(tablename);
|
||||
//
|
||||
// System.out.println("il numero di righe è: " + rows);
|
||||
//
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO: handle exception
|
||||
//
|
||||
// System.out.println("The table does not exist.");
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//
|
||||
//import java.util.Scanner;
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.dataanalysis.databases.lexer.MySQLLexicalAnalyzer;
|
||||
//import org.gcube.dataanalysis.databases.lexer.PostgresLexicalAnalyzer;
|
||||
//
|
||||
//
|
||||
///** Class that tests the query's parsing by means of a lexical analyzer. It allows to filter a query no read-only compliant. */
|
||||
//public class TestParsing {
|
||||
//
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
// // TODO Auto-generated method stub
|
||||
//
|
||||
// String query="INSERT INTO ANTIQUES VALUES (21, 01, 'Ottoman', 200.00);";
|
||||
//
|
||||
// // String query =
|
||||
// // "SELECT COUNT(*) FROM EMPLOYEESTATISTICSTABLE WHERE POSITION = 'Staff';";
|
||||
// // String
|
||||
// // query="SELECT COUNT(*) FROM EMPLOYEESTATISTICSTABLE WHERE POSITION = 'Staff';";
|
||||
//
|
||||
// // String query =
|
||||
// // "SELECT EMPLOYEEIDNO FROM EMPLOYEESTATISTICSTABLE WHERE SALARY<40000 OR BENEFITS<10000;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT EMPLOYEEIDNO FROM EMPLOYEESTATISTICSTABLE WHERE POSITION='Manager' AND SALARY>60000 OR BENEFITS>12000;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT EMPLOYEEIDNO FROM EMPLOYEESTATISTICSTABLE WHERE SALARY>=50000;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT EMPLOYEEIDNO FROM EMPLOYEESTATISTICSTABLE WHERE SALARY<=50000;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT SUM(SALARY), AVG(SALARY) FROM EMPLOYEESTATISTICSTABLE;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT FirstName, LastName, Address, City, State FROM EmployeeAddressTable;";
|
||||
//
|
||||
// // String
|
||||
// // query="SELECT EMPLOYEEIDNO FROM EMPLOYEESTATISTICSTABLE WHERE SALARY<>50000;";
|
||||
//
|
||||
// // String query="INSERT INTO ANTIQUES from select * from hcaf_d;";
|
||||
//
|
||||
// // String query = "COPY lori FROM lavoro";
|
||||
//
|
||||
//// String query = "COPY lori FROM \"lavoro\";";
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// // String query="SELECT TITLE, DIRECTOR "
|
||||
// // +"FROM MOVIE "
|
||||
// // +"WHERE MOVIE_ID IN"
|
||||
// // +"("
|
||||
// // +"("
|
||||
// // +"SELECT MOVIE_ID "
|
||||
// // +"FROM ACTOR "
|
||||
// // +"WHERE NAME=?Tom Cruise? "
|
||||
// // +"UNION "
|
||||
// // +"SELECT "
|
||||
// // +"MOVIE_ID "
|
||||
// // +"FROM ACTOR "
|
||||
// // +"WHERE NAME=?Kelly McGillis? "
|
||||
// // +")"
|
||||
// // +"INTERSECT "
|
||||
// // +"SELECT MOVIE_ID "
|
||||
// // +"FROM KEYWORD "
|
||||
// // +"WHERE KEYWORD=?drama? "
|
||||
// // +");";
|
||||
//
|
||||
// // String query="select * from `drop` where `drop`.id>10;";
|
||||
//
|
||||
// // System.out.println("Inserisci la query");
|
||||
// // Scanner scanIn = new Scanner(System.in);
|
||||
// //
|
||||
// // String query=scanIn.nextLine();
|
||||
// //
|
||||
// // scanIn.close();
|
||||
//
|
||||
// // StringTokenizer string=new StringTokenizer(query, " ()[]{}<;>=,",
|
||||
// // false);
|
||||
// //
|
||||
// // ArrayList<String> tokenslist=new ArrayList<String>();
|
||||
// //
|
||||
// // //StringTokenizer
|
||||
// // AnalysisLogger.getLogger().debug("------------ Tokenizer ----------- ");
|
||||
// //
|
||||
// //
|
||||
// // int count = string.countTokens();
|
||||
// //
|
||||
// // for (int i=0; i< count; i++){
|
||||
// //
|
||||
// // String token=string.nextToken();
|
||||
// //
|
||||
// //
|
||||
// // tokenslist.add(token);
|
||||
// //
|
||||
// // AnalysisLogger.getLogger().debug("TestParsing->: "+ token);
|
||||
// //
|
||||
// // }
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("TestParsing->: Query " + query);
|
||||
// // System.out.println();
|
||||
//
|
||||
// boolean AllowedQuery = false;
|
||||
//
|
||||
// // LexicalAnalyzer lexer=new LexicalAnalyzer();
|
||||
// // AllowedQuery=lexer.analyze(query);
|
||||
//
|
||||
// System.out.println("Specifica il tipo di piattaforma");
|
||||
//
|
||||
// Scanner scanIn = new Scanner(System.in);
|
||||
// String platform = scanIn.nextLine();
|
||||
// scanIn.close();
|
||||
//
|
||||
// if (platform.toLowerCase().contains("postgres")) {
|
||||
//
|
||||
// PostgresLexicalAnalyzer obj = new PostgresLexicalAnalyzer();
|
||||
//
|
||||
// AllowedQuery = obj.analyze(query);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (platform.toLowerCase().contains("mysql")) {
|
||||
//
|
||||
// MySQLLexicalAnalyzer obj = new MySQLLexicalAnalyzer();
|
||||
//
|
||||
// AllowedQuery = obj.analyze(query);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// if (AllowedQuery == true) {
|
||||
//
|
||||
// AnalysisLogger.getLogger().debug("TestParsing->: filtered Query");
|
||||
//
|
||||
// } else {
|
||||
// AnalysisLogger.getLogger().debug(
|
||||
// "TestParsing->: not filtered query");
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,284 @@
|
|||
package org.gcube.dataanalysis.test;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.dataanalysis.ecoengine.configuration.AlgorithmConfiguration;
|
||||
import org.gcube.dataanalysis.ecoengine.utils.DatabaseUtils;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
|
||||
|
||||
|
||||
public class TestPostgres {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
|
||||
@SuppressWarnings({"unchecked"})
|
||||
public static List<Object> executeHQLQuery(String query, SessionFactory DBSessionFactory, boolean useSQL) throws Exception{
|
||||
|
||||
List<Object> obj = null;
|
||||
Session ss = null;
|
||||
try {
|
||||
ss = DBSessionFactory.getCurrentSession();
|
||||
|
||||
ss.beginTransaction();
|
||||
|
||||
Query qr = null;
|
||||
|
||||
if (useSQL)
|
||||
qr = ss.createSQLQuery(query);
|
||||
else
|
||||
qr = ss.createQuery(query);
|
||||
|
||||
List<Object> result = qr.list();
|
||||
|
||||
ss.getTransaction().commit();
|
||||
|
||||
/*
|
||||
if (result == null)
|
||||
System.out.println("Hibernate doesn't return a valid object when org.gcube.contentmanagement.lexicalmatcher retrieve UserState Object");
|
||||
|
||||
if (result != null && result.size() == 0)
|
||||
System.out.println(String.format("found nothing in database"));
|
||||
*/
|
||||
if (result != null && result.size() != 0) {
|
||||
obj = result;
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
// System.out.println(String.format("Error while executing query: %1$s %2$s", query, e.getMessage()));
|
||||
// e.printStackTrace();
|
||||
System.out.println(String.format("Error while executing query: %1$s %2$s", query, e.getMessage()));
|
||||
throw e;
|
||||
}
|
||||
|
||||
return obj;
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception{
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
/*AlgorithmConfiguration config = new AlgorithmConfiguration();
|
||||
config.setConfigPath("./cfg/");
|
||||
config.setParam("DatabaseUserName", "utente");
|
||||
config.setParam("DatabasePassword", "d4science");
|
||||
config.setParam("DatabaseDriver","org.postgresql.Driver");
|
||||
//config.setParam("DatabaseDialect", "org.hibernate.dialect.PostgresPlusDialect");
|
||||
config.setParam(
|
||||
"DatabaseURL",
|
||||
"jdbc:postgresql://statistical-manager.d.d4science.research-infrastructures.eu/testdb");
|
||||
|
||||
SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
|
||||
List<Object> rawnames = DatabaseFactory
|
||||
.executeSQLQuery(
|
||||
"select a.source_data as sourceA, b.source_data as sourceB, a.target_data_scientific_name as targetA, b.target_data_scientific_name as tagertB " +
|
||||
"from bionymoutsimplefaked1csvpreprcsv as a join bionymoutfaked1csvpreprcsv as b on a.source_data=b.source_data limit 10",
|
||||
dbconnection);
|
||||
|
||||
|
||||
List<Object> rawnames = DatabaseFactory
|
||||
.executeSQLQuery(
|
||||
"select a.source_data as sourceA, a.target_data_scientific_name as targetA, b.source_data sourceB " +
|
||||
"from bion_id_a1f27126_df23_4980_8e2b_4afc8aaa404f as a " +
|
||||
"left join bion_id_ab251ee0_7cc6_49b2_8956_330f4716650f as b " +
|
||||
"on a.source_data=b.source_data",
|
||||
dbconnection);
|
||||
|
||||
|
||||
//List<Object> rawnames = DatabaseFactory.executeHQLQuery(query, DBSessionFactory, useSQL);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
System.out.println("***************************************************************");
|
||||
System.out.println();
|
||||
|
||||
for (int i = 0; i < rawnames.size(); i++) {
|
||||
|
||||
Object[] row = (ObEntityManagerject[]) rawnames.get(i);
|
||||
|
||||
for (int j = 0; j < row.length; j++) {
|
||||
|
||||
System.out.print("\"" + row[j] + "\"; ");
|
||||
|
||||
}
|
||||
System.out.println();
|
||||
//System.out.println("Fine ");
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
AlgorithmConfiguration config = new AlgorithmConfiguration();
|
||||
config.setConfigPath("./cfg/");
|
||||
config.setParam("DatabaseUserName", "root");
|
||||
config.setParam("DatabasePassword", "test");
|
||||
config.setParam("DatabaseDriver","com.mysql.jdbc.Driver");
|
||||
config.setParam("DatabaseDialect", "org.hibernate.dialect.MySQLDialect");
|
||||
config.setParam(
|
||||
"DatabaseURL",
|
||||
"jdbc:mysql://146.48.87.169/timeseries");
|
||||
|
||||
SessionFactory dbconnection = DatabaseUtils.initDBSession(config);
|
||||
|
||||
|
||||
/*List<Object> rawnames = DatabaseFactory
|
||||
.executeSQLQuery(
|
||||
"select a.source_data as sourceA, b.source_data as sourceB, a.target_data_scientific_name as targetA, b.target_data_scientific_name as tagertB " +
|
||||
"from bionymoutsimplefaked1csvpreprcsv as a join bionymoutfaked1csvpreprcsv as b on a.source_data=b.source_data limit 10",
|
||||
dbconnection);*/
|
||||
|
||||
//try{
|
||||
|
||||
|
||||
|
||||
|
||||
// dbconnection.getCurrentSession().;
|
||||
//
|
||||
//
|
||||
// ss.getCause()
|
||||
|
||||
// }
|
||||
/*catch(JDBCExceptionReporter e)
|
||||
{
|
||||
Throwable t = e.getCause();
|
||||
SQLException ex = (SQLException) t.getCause();
|
||||
while(ex != null){
|
||||
while(t != null) {
|
||||
t = t.getCause();
|
||||
}
|
||||
// Logger logger=new Logger();
|
||||
// logger.warn("SQLException="+ex.getLocalizedMessage());
|
||||
|
||||
System.out.println("sono qui");
|
||||
|
||||
ex = ex.getNextException();
|
||||
}
|
||||
}
|
||||
*/
|
||||
System.out.println("***************************************************************");
|
||||
System.out.println();
|
||||
|
||||
//List<Object> rawnames =((javax.persistence.Query) query).getResultList();
|
||||
|
||||
|
||||
|
||||
try{
|
||||
|
||||
/*List<Object> rawnames = executeHQLQuery(
|
||||
"select * from (select a.field1, b.field1_id as bb, b.field1 from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
"left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id) as cd",*/
|
||||
// "select * "+
|
||||
// "from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a, cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b limit 10",
|
||||
// dbconnection, true);
|
||||
|
||||
|
||||
List<Object> rawnames = executeHQLQuery(
|
||||
"select a.field1, b.field1_id from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a "+
|
||||
"left join cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b on a.field3_id=b.field1_id",dbconnection, true);
|
||||
// "select * "+
|
||||
// "from a7f768710_c7b0_11df_b2bc_e0f36cf4c8cd as a, cur_00d4e2d0_ecbd_11df_87fa_de008e0850ff as b limit 10",
|
||||
// dbconnection, true);
|
||||
|
||||
|
||||
|
||||
System.out.println("Size: "+rawnames.size());
|
||||
|
||||
for (int i = 0; i < rawnames.size(); i++) {
|
||||
|
||||
Object[] row = (Object[]) rawnames.get(i);
|
||||
|
||||
for (int j = 0; j < row.length; j++) {
|
||||
|
||||
System.out.print("\"" + row[j] + "\"; ");
|
||||
|
||||
}
|
||||
System.out.println();
|
||||
//System.out.println("Fine ");
|
||||
|
||||
}
|
||||
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
System.out.println("message: "+e.getMessage());
|
||||
//System.out.println(e.getLocalizedMessage());
|
||||
|
||||
StackTraceElement [] elem=e.getStackTrace();
|
||||
|
||||
|
||||
System.out.println("localized: "+e.getCause().toString());
|
||||
String error=e.getCause().toString();
|
||||
if (error.contains("MySQLSyntaxErrorException"))
|
||||
{
|
||||
|
||||
System.out.println("ERROR "+e.getMessage()+" "+"because an error is present: "+e.getCause().getMessage());
|
||||
|
||||
|
||||
}
|
||||
|
||||
// System.out.println("cause: "+e.getCause().getMessage());
|
||||
|
||||
// for (int i=0;i<elem.length;i++){
|
||||
//
|
||||
//
|
||||
//
|
||||
// System.out.println("elem: "+ elem[i]);
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
//System.out.println("JDBC Error: "+JDBCExceptionReporter.DEFAULT_EXCEPTION_MSG);
|
||||
//System.out.println("JDBC Error: "+JDBCExceptionReporter.DEFAULT_WARNING_MSG);
|
||||
//System.out.println("JDBC Error: "+JDBCExceptionReporter.log.getName());
|
||||
//System.out.println("JDBC Error: "+JDBCExceptionReporter.log.ROOT_LOGGER_NAME);
|
||||
//org.slf4j.Logger logger = LoggerFactory.getLogger("log4j.logger.org.hibernate");
|
||||
|
||||
|
||||
// Session s=dbconnection.openSession();
|
||||
// s.close()
|
||||
|
||||
|
||||
|
||||
|
||||
// System.out.println(dbconnection.getCache().getClass());
|
||||
|
||||
//SQLException ex= new SQLException(JDBCExceptionReporter.log.getName());
|
||||
|
||||
//SQLException ex= new SQLException
|
||||
|
||||
//System.out.println("message: "+ex.getLocalizedMessage());
|
||||
|
||||
// System.out.println(ex.getCause();
|
||||
|
||||
// JDBCExceptionReporter.;
|
||||
|
||||
//System.out.println("Eccezione:" +e.getMessage());
|
||||
//e.printStackTrace();
|
||||
//e.getLocalizedMessage();
|
||||
|
||||
|
||||
/*Connection a=dbconnection.getCurrentSession().disconnect();
|
||||
|
||||
|
||||
try {
|
||||
System.out.println(a.getWarnings().getSQLState());
|
||||
} catch (SQLException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
|
||||
System.out.println("message: "+e1.getCause().getStackTrace().length);
|
||||
//e1.printStackTrace();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package org.gcube.dataanalysis.test;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.dataanalysis.databases.accessold.AddressesDiscoverer;
|
||||
|
||||
|
||||
public class TestRetrieveEndpoint {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
|
||||
|
||||
AddressesDiscoverer obj=new AddressesDiscoverer();
|
||||
List <String> addresses=new ArrayList<String>();
|
||||
|
||||
obj.setScope("/gcube/devsec");
|
||||
|
||||
addresses=obj.retrieveAddress("Database");
|
||||
|
||||
//Stampa
|
||||
for (int i=0; i<addresses.size();i++){
|
||||
|
||||
System.out.println(addresses.get(i));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,88 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.dataanalysis.databases.utils.DatabaseManagement;
|
||||
//
|
||||
//public class TestSampleOnTable {
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Postgres Database
|
||||
// try {
|
||||
// mgt.createConnection(
|
||||
// "postgres",
|
||||
// "d4science2",
|
||||
// "org.postgresql.Driver",
|
||||
// "org.hibernate.dialect.PostgreSQLDialect",
|
||||
// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb",
|
||||
// "aquamapsdb");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.sampleOnTable("Divisions", "public");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger
|
||||
// .getLogger()
|
||||
// .debug("In TestSampleOnTable->EXCEPTION: "+ e);
|
||||
// }
|
||||
//
|
||||
// // SmartSampleOnTable operation
|
||||
//
|
||||
// // mgt.smartSampleOnTable(tableName);
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// //MYSQL Database
|
||||
//
|
||||
//// try {
|
||||
//// mgt.createConnection(
|
||||
//// "root",
|
||||
//// "test",
|
||||
//// "com.mysql.jdbc.Driver",
|
||||
//// "org.hibernate.dialect.MySQLDialect",
|
||||
////// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
//// "jdbc:mysql://146.48.87.169:3306/aquamaps",
|
||||
//// "hcaf_d");
|
||||
//// } catch (IOException e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// }
|
||||
////
|
||||
//// // SampleOnTable operation
|
||||
////
|
||||
//// try {
|
||||
//// // for database postgres, if a table is not in lower case format, it
|
||||
//// // is necessary to include the table name in quotes ""
|
||||
//// mgt.sampleOnTable("hcaf_d", "aquamaps");
|
||||
//// } catch (Exception e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
////
|
||||
//// AnalysisLogger
|
||||
//// .getLogger()
|
||||
//// .debug("In TestSampleOnTable->EXCEPTION: "+ e);
|
||||
//// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -0,0 +1,109 @@
|
|||
//package org.gcube.dataanalysis.test;
|
||||
//
|
||||
//import java.io.IOException;
|
||||
//
|
||||
//import org.gcube.contentmanagement.lexicalmatcher.utils.AnalysisLogger;
|
||||
//import org.gcube.dataanalysis.databases.utils.DatabaseManagement;
|
||||
//
|
||||
//public class TestSmartSampleOnTable {
|
||||
//
|
||||
// public static void main(String[] args) {
|
||||
//
|
||||
// // connection to database
|
||||
// DatabaseManagement mgt = new DatabaseManagement("");
|
||||
//
|
||||
//// // Postgres Database
|
||||
//// try {
|
||||
//// mgt.createConnection(
|
||||
//// "postgres",
|
||||
//// "d4science2",
|
||||
//// "org.postgresql.Driver",
|
||||
//// "org.hibernate.dialect.PostgreSQLDialect",
|
||||
//// "jdbc:postgresql://geoserver-dev.d4science-ii.research-infrastructures.eu:5432/aquamapsdb",
|
||||
//// "aquamapsdb");
|
||||
//// } catch (IOException e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// }
|
||||
////
|
||||
//// // SampleOnTable operation
|
||||
////
|
||||
//// try {
|
||||
//// // for database postgres, if a table is not in lower case format, it
|
||||
//// // is necessary to include the table name in quotes ""
|
||||
//// mgt.smartSampleOnTable("Divisions", "public");
|
||||
//// } catch (Exception e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
////
|
||||
//// AnalysisLogger.getLogger().debug(
|
||||
//// "In TestSmartSampleOnTable->EXCEPTION: " + e);
|
||||
//// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// //Mysql database
|
||||
//
|
||||
// try {
|
||||
// mgt.createConnection(
|
||||
// "root",
|
||||
// "test",
|
||||
// "com.mysql.jdbc.Driver",
|
||||
// "org.hibernate.dialect.MySQLDialect",
|
||||
//// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
// "jdbc:mysql://146.48.87.169:3306/aquamaps",
|
||||
// "hcaf_d");
|
||||
// } catch (IOException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// // SampleOnTable operation
|
||||
//
|
||||
// try {
|
||||
// // for database postgres, if a table is not in lower case format, it
|
||||
// // is necessary to include the table name in quotes ""
|
||||
// mgt.smartSampleOnTable("hcaf_d", "aquamaps");
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
//
|
||||
// AnalysisLogger
|
||||
// .getLogger()
|
||||
// .debug("In TestSampleOnTable->EXCEPTION: "+ e);
|
||||
// }
|
||||
//
|
||||
// //Mysql database
|
||||
//
|
||||
//// try {
|
||||
//// mgt.createConnection(
|
||||
//// "root",
|
||||
//// "test",
|
||||
//// "com.mysql.jdbc.Driver",
|
||||
//// "org.hibernate.dialect.MySQLDialect",
|
||||
////// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
//// "jdbc:mysql://146.48.87.169:3306/col2oct2010",
|
||||
//// "common_names");
|
||||
//// } catch (IOException e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
//// }
|
||||
////
|
||||
//// // SampleOnTable operation
|
||||
////
|
||||
//// try {
|
||||
//// // for database postgres, if a table is not in lower case format, it
|
||||
//// // is necessary to include the table name in quotes ""
|
||||
//// mgt.smartSampleOnTable("common_names", "col2oct2010");
|
||||
//// } catch (Exception e) {
|
||||
//// // TODO Auto-generated catch block
|
||||
//// e.printStackTrace();
|
||||
////
|
||||
//// AnalysisLogger
|
||||
//// .getLogger()
|
||||
//// .debug("In TestSampleOnTable->EXCEPTION: "+ e);
|
||||
//// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
//}
|
Loading…
Reference in New Issue