2008-10-21 11:13:46 +02:00
|
|
|
package org.gcube.vremanagement.vremodeler.db;
|
|
|
|
|
2009-09-30 11:29:45 +02:00
|
|
|
import java.io.BufferedReader;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileReader;
|
2008-10-21 11:13:46 +02:00
|
|
|
import java.sql.SQLException;
|
|
|
|
import org.gcube.common.core.faults.GCUBEFault;
|
|
|
|
import org.gcube.common.core.scope.GCUBEScope;
|
|
|
|
import org.gcube.common.core.utils.logging.GCUBELog;
|
2008-12-16 18:34:01 +01:00
|
|
|
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
2009-09-30 11:29:45 +02:00
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.CollectionHandler;
|
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.FunctionalityHandler;
|
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.GHNHandler;
|
2009-11-27 17:20:12 +01:00
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.GenericResourceHandler;
|
2009-09-30 11:29:45 +02:00
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.GhnRiRelationHandler;
|
|
|
|
import org.gcube.vremanagement.vremodeler.resources.handlers.RunningInstancesHandler;
|
|
|
|
|
|
|
|
|
2008-12-10 19:09:38 +01:00
|
|
|
|
2008-10-21 13:08:33 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author lucio lelii CNR
|
|
|
|
*
|
|
|
|
*/
|
2008-12-10 19:09:38 +01:00
|
|
|
public class IStoDBUtil {
|
2008-10-21 11:13:46 +02:00
|
|
|
|
2009-09-30 11:29:45 +02:00
|
|
|
private static GCUBELog logger = new GCUBELog(IStoDBUtil.class);
|
|
|
|
|
|
|
|
private static void createTables(GCUBEScope scope) throws GCUBEFault{
|
|
|
|
try{
|
|
|
|
DBInterface.connect();
|
2009-11-30 11:24:19 +01:00
|
|
|
File file= ServiceContext.getContext().getFile("hsqldb/vreModelerDBInitializer", false);
|
2009-09-30 11:29:45 +02:00
|
|
|
FileReader fileReader= new FileReader(file);
|
|
|
|
BufferedReader in = new BufferedReader(fileReader);
|
|
|
|
String line;
|
|
|
|
while ((line=in.readLine())!=null){
|
|
|
|
logger.trace(line);
|
|
|
|
DBInterface.ExecuteUpdate(line);
|
|
|
|
}
|
|
|
|
}catch (Exception e){
|
|
|
|
logger.error("error creating tables",e);
|
|
|
|
throw new GCUBEFault(e); }
|
|
|
|
}
|
|
|
|
|
2008-10-21 11:13:46 +02:00
|
|
|
/**
|
2008-10-21 13:08:33 +02:00
|
|
|
* Initialize all database tables
|
2008-10-21 11:13:46 +02:00
|
|
|
*
|
2008-10-21 13:08:33 +02:00
|
|
|
* @param GCUBEScope the scope
|
2008-10-21 11:13:46 +02:00
|
|
|
*/
|
2008-10-21 13:08:33 +02:00
|
|
|
public static void initDB(GCUBEScope scope) throws GCUBEFault{
|
2008-10-21 11:13:46 +02:00
|
|
|
|
2009-01-15 19:43:05 +01:00
|
|
|
logger.info("Starting initialization!!");
|
2009-09-30 11:29:45 +02:00
|
|
|
if (!DBInterface.dbAlreadyCreated())
|
|
|
|
createTables(scope);
|
2010-11-09 19:58:58 +01:00
|
|
|
else cleanDB(scope);
|
2008-10-21 11:13:46 +02:00
|
|
|
}
|
|
|
|
|
2009-09-30 11:29:45 +02:00
|
|
|
private static void cleanDB(GCUBEScope scope) throws GCUBEFault
|
2008-10-21 11:13:46 +02:00
|
|
|
{
|
|
|
|
try{
|
|
|
|
DBInterface.connect();
|
2009-02-10 19:54:48 +01:00
|
|
|
//DBInterface.deleteAll("VRERELATEDCOLLECTION");
|
|
|
|
//DBInterface.deleteAll("VRERELATEDCS");
|
|
|
|
//DBInterface.deleteAll("VRERELATEDMETADATAFORMAT");
|
|
|
|
//DBInterface.deleteAll("VRERELATEDFUNCT");
|
|
|
|
//DBInterface.deleteAll("VRERELATEDGHN");
|
|
|
|
//DBInterface.deleteAll("VRE");
|
2011-05-06 12:36:42 +02:00
|
|
|
//DBInterface.deleteAll(NativeMetadataFormatHandler.tableName);
|
2009-09-30 11:29:45 +02:00
|
|
|
//DBInterface.deleteAll("derivablemdf");
|
2011-05-06 12:36:42 +02:00
|
|
|
//DBInterface.deleteAll(MetadataFormatHandler.tableName);
|
2009-09-30 11:29:45 +02:00
|
|
|
DBInterface.deleteAll(CollectionHandler.tableName);
|
|
|
|
//DBInterface.deleteAll("relatedserviceid");
|
|
|
|
DBInterface.deleteAll(GHNHandler.tableName);
|
|
|
|
DBInterface.deleteAll(RunningInstancesHandler.tableName);
|
|
|
|
DBInterface.deleteAll(GhnRiRelationHandler.tableName);
|
|
|
|
//DBInterface.deleteAll("cs");
|
2009-11-27 17:20:12 +01:00
|
|
|
DBInterface.deleteAll(GenericResourceHandler.tableName);
|
2009-09-30 11:29:45 +02:00
|
|
|
DBInterface.deleteAll(FunctionalityHandler.portletTableName);
|
|
|
|
DBInterface.deleteAll(FunctionalityHandler.serviceTableName);
|
|
|
|
DBInterface.deleteAll(FunctionalityHandler.functionalityTableName);
|
2009-04-01 01:05:14 +02:00
|
|
|
}catch (SQLException e){
|
|
|
|
logger.error("error cleaning sqlDB",e);
|
|
|
|
throw new GCUBEFault(e); }
|
2008-10-21 11:13:46 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
|
2009-11-27 17:20:12 +01:00
|
|
|
|
|
|
|
/*
|
2009-02-13 12:37:09 +01:00
|
|
|
private static void insertNeededResources(GCUBEScope scope) throws GCUBEFault{
|
|
|
|
List<GCUBEGenericResource> genericResourcesList= null;
|
|
|
|
try{
|
|
|
|
if (queryClient==null) queryClient= GHNContext.getImplementation(ISClient.class);
|
|
|
|
GCUBEGenericResourceQuery query= queryClient.getQuery(GCUBEGenericResourceQuery.class);
|
2009-03-23 11:31:42 +01:00
|
|
|
query.addGenericCondition("$result/Profile/SecondaryType/string() eq 'UserProfile' or $result/Profile/SecondaryType/string() eq 'Schemas Searchable Fields' or $result/Profile/SecondaryType/string() eq 'MetadataXSLT' or $result/Profile/SecondaryType/string() eq 'PresentationXSLT'");
|
2009-02-13 12:37:09 +01:00
|
|
|
genericResourcesList= queryClient.execute(query, scope);
|
|
|
|
}catch(Exception e ){logger.error("Error queryng IS"); throw new GCUBEFault(e); }
|
2008-10-21 11:13:46 +02:00
|
|
|
|
2009-02-13 12:37:09 +01:00
|
|
|
|
|
|
|
//NEEDEDRESOURCES(ID, TYPE)
|
2009-09-30 11:29:45 +02:00
|
|
|
List<String[]> values = new ArrayList<String[]>(genericResourcesList.size());
|
2009-02-13 12:37:09 +01:00
|
|
|
List<String> row;
|
|
|
|
for (GCUBEGenericResource gen :genericResourcesList){
|
|
|
|
row= new ArrayList<String>(2);
|
|
|
|
row.add(gen.getID());
|
|
|
|
row.add(gen.getType());
|
2009-09-30 11:29:45 +02:00
|
|
|
values.add(row.toArray(new String[2]));
|
2009-02-13 12:37:09 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
try{
|
|
|
|
DBInterface.connect();
|
2009-09-30 11:29:45 +02:00
|
|
|
DBInterface.insertInto("NEEDEDRESOURCES", values.toArray(new String[0][0]));
|
2009-02-13 12:37:09 +01:00
|
|
|
}catch (SQLException e){
|
2009-10-01 16:59:26 +02:00
|
|
|
logger.error("error inserting Generic resource in the DB ",e);
|
2009-02-13 12:37:09 +01:00
|
|
|
throw new GCUBEFault(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2009-11-27 17:20:12 +01:00
|
|
|
*/
|
2008-10-21 11:13:46 +02:00
|
|
|
|
|
|
|
}
|