2008-04-22 15:55:32 +02:00
package org.gcube.vremanagement.vremodeler.impl ;
2008-04-22 16:54:47 +02:00
import java.rmi.RemoteException ;
import java.sql.Date ;
import java.sql.ResultSet ;
import java.util.ArrayList ;
import java.util.Hashtable ;
2008-10-21 19:09:24 +02:00
import java.util.List ;
2008-10-22 19:43:44 +02:00
import javax.xml.rpc.ServiceException ;
2008-04-22 16:54:47 +02:00
import org.gcube.common.core.faults.GCUBEFault ;
2008-10-22 19:43:44 +02:00
import org.gcube.vremanagement.vremanager.stubs.vremanager.VREManagerPortType ;
import org.gcube.vremanagement.vremanager.stubs.vremanager.service.VREManagerServiceAddressingLocator ;
2008-04-22 16:54:47 +02:00
import org.gcube.vremanagement.vremodeler.db.DBInterface ;
import org.gcube.vremanagement.vremodeler.stubs.CollectionArray ;
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityIDArray ;
2008-10-21 19:09:24 +02:00
import org.gcube.vremanagement.vremodeler.stubs.GHNArray ;
2008-04-22 16:54:47 +02:00
import org.gcube.vremanagement.vremodeler.stubs.SetMDFormatArgs ;
2008-10-21 19:09:24 +02:00
import org.gcube.vremanagement.vremodeler.stubs.VRERequest ;
2008-04-22 16:54:47 +02:00
import org.globus.wsrf.ResourceException ;
import org.globus.wsrf.encoding.ObjectSerializer ;
import org.globus.wsrf.encoding.SerializationException ;
2008-04-22 15:55:32 +02:00
public class ModelerService {
2008-04-22 16:54:47 +02:00
protected ModelerResource getResource ( ) throws ResourceException {
return ( ModelerResource ) ModelerContext . getPortTypeContext ( ) . getWSHome ( ) . find ( ) ;
}
/ * *
*
* @param request void
* @return VoidType
* @throws RemoteException -
*
* /
2008-10-21 19:09:24 +02:00
public void setVREModel ( VRERequest request ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
Date dateFrom = null , dateTo = null ;
ResultSet res = null ;
try {
res = DBInterface . queryDB ( " select * from DL where DL.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
if ( res . next ( ) )
{
dateFrom = new Date ( request . getStartTime ( ) ) ;
dateTo = new Date ( request . getEndTime ( ) ) ;
2008-10-21 19:09:24 +02:00
DBInterface . queryDB ( " update VRE set name=' " + request . getVREName ( ) + " ', description=' " + request . getVREDescription ( ) + " ', dldesigner=' " + request . getVREDesigner ( ) + " ', dlmanager= ' " + request . getVREManager ( ) + " ', intervalfrom=' " + dateFrom + " ', intervalto=' " + dateTo + " ' where DL.id=' " + getResource ( ) . getID ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
} else {
dateFrom = new Date ( request . getStartTime ( ) ) ;
dateTo = new Date ( request . getEndTime ( ) ) ;
String eprToString ;
try {
eprToString = ObjectSerializer . toString ( getResource ( ) . getEPR ( ) ) ;
//logger.debug("EPR: "+eprToString);
} catch ( SerializationException e ) {
//logger.error("VDL Model Service: error serializing EPR");
throw new RemoteException ( " VDL Model Service: error serializing EPR " , e ) ;
}
2008-10-21 19:09:24 +02:00
DBInterface . ExecuteUpdate ( " insert into VRE values(' " + getResource ( ) . getID ( ) + " ',' " + request . getVREName ( ) + " ',' " + request . getVREDescription ( ) + " ',' " + request . getVREDesigner ( ) + " ',' " + request . getVREManager ( ) + " ',' " + dateFrom + " ',' " + dateTo + " ',' " + eprToString + " ','In Progress'); " ) ;
2008-04-22 16:54:47 +02:00
}
} catch ( Exception e ) {
//logger.error(e.getMessage());
//e.printStackTrace();
throw new GCUBEFault ( e ) ;
}
}
/ * *
*
*
* @param request void
* @return VoidType
* @throws RemoteException -
* /
2008-10-21 19:09:24 +02:00
public String getVREModel ( ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
String toReturn = null ;
ResultSet res = null ;
//logger.debug("Request DL with ID "+ID);
try {
String ID = getResource ( ) . getId ( ) ;
DBInterface . connect ( ) ;
res = DBInterface . queryDB ( " select * from DL where DL.id=' " + ID + " '; " ) ;
2008-10-21 19:09:24 +02:00
toReturn = XMLUtil . PrepareVREModelXML ( res ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) {
//logger.error("VDLModel parsing error in function getDLModel "+e.getMessage());
throw new GCUBEFault ( e ) ;
}
return toReturn ;
}
/ * *
* return an XML containing the DHN list
*
* @param request void
* @return a XML String
* @throws RemoteException -
* /
2008-10-21 19:09:24 +02:00
public String getGHNs ( ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
ResultSet res ;
2008-10-21 19:09:24 +02:00
ArrayList < String > relatedGHN = new ArrayList < String > ( ) ;
2008-04-22 16:54:47 +02:00
try {
DBInterface . connect ( ) ;
2008-10-21 19:09:24 +02:00
res = DBInterface . queryDB ( " select * from GHN; " ) ;
2008-04-22 16:54:47 +02:00
2008-10-21 19:09:24 +02:00
ResultSet resRelated = DBInterface . queryDB ( " select ghnid from VRERELATEDGHN where VRERELATEDGHN.dlid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( resRelated . next ( ) ) {
2008-10-21 19:09:24 +02:00
relatedGHN . add ( resRelated . getString ( 1 ) ) ;
2008-04-22 16:54:47 +02:00
}
} catch ( Exception e ) { //logger.error("VDL Model: error on DB");
throw new GCUBEFault ( e ) ; }
2008-10-21 19:09:24 +02:00
return XMLUtil . PrepareGHNsXML ( res , relatedGHN ) ;
2008-04-22 16:54:47 +02:00
}
/ * *
* Set the selected DHN
*
* @param request array of dhn id
* @return VoidType
* @throws RemoteException -
* /
2008-10-21 19:09:24 +02:00
public void setGHNs ( GHNArray request ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
try {
String instanceID = ( String ) getResource ( ) . getId ( ) ;
2008-10-21 19:09:24 +02:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDDHN WHERE VRERELATEDDHN.vreid=' " + instanceID + " '; " ) ;
2008-04-22 16:54:47 +02:00
String dlKey = instanceID ;
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getGHNElement ( ) . length ) ;
ArrayList < String > row = null ;
for ( int i = 0 ; i < request . getGHNElement ( ) . length ; i + + )
2008-04-22 16:54:47 +02:00
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
row . add ( request . getGHNElement ( ) [ i ] ) ;
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDGHN " , values ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
/ * *
*
* Return an XML with all the collection selectable
*
* @param request void
* @return the collection retreived from the database
* @throws RemoteException -
* /
public String getCollection ( ) throws GCUBEFault {
ResultSet res ;
ArrayList < String > relatedCollection = new ArrayList < String > ( ) ;
try {
DBInterface . connect ( ) ;
res = DBInterface . queryDB ( " select * from COLLECTION; " ) ;
2008-10-21 19:09:24 +02:00
ResultSet resRelated = DBInterface . queryDB ( " select collid from VRERELATEDCOLLECTION where VRERELATEDCOLLECTION.dlid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( resRelated . next ( ) ) {
relatedCollection . add ( resRelated . getString ( 1 ) ) ;
}
} catch ( Exception e ) { //logger.error("VDL Model: error on DB");
throw new GCUBEFault ( e ) ; }
2008-04-22 18:28:11 +02:00
return XMLUtil . PrepareCollectionXML ( res , relatedCollection ) ;
2008-04-22 16:54:47 +02:00
}
/ * *
*
* Insert in the DB the selected collection
*
* @param request An Array that contains the selected collections ids
* @return void
* @throws RemoteException -
* /
public void setCollection ( CollectionArray request ) throws GCUBEFault {
try {
2008-10-21 19:09:24 +02:00
DBInterface . connect ( ) ;
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDCOLLECTION WHERE VRERELATEDCOLLECTION.vreid=' " + getResource ( ) . getID ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
String dlKey = ( String ) getResource ( ) . getId ( ) ;
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCollectionElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getCollectionElement ( ) . length ; i + + )
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
row . add ( request . getCollectionElement ( ) [ i ] ) ;
2008-04-22 16:54:47 +02:00
}
2008-10-21 19:09:24 +02:00
DBInterface . connect ( ) ;
DBInterface . InsertInto ( " VRERELATEDCOLLECTION " , values ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
/ * *
* Return the possibles metadata format for selected collection
*
* @param request void
* @return a XML format string
* @throws RemoteException -
* /
public String getMetadataRelatedToCollection ( ) throws GCUBEFault {
ResultSet resDerivable , resNative , collectionRelated , totalMF ;
String preparedWhere = " " ;
Hashtable < String , ArrayList < String > > selectedMetadataStructure = new Hashtable < String , ArrayList < String > > ( ) ;
boolean enter = false ;
try {
DBInterface . connect ( ) ;
collectionRelated = DBInterface . queryDB ( " select DLRELATEDCOLLECTION.collid from DLRELATEDCOLLECTION where DLRELATEDCOLLECTION.dlid=' " + getResource ( ) . getId ( ) + " '; " ) ;
//select only the resuls related with selected collection
preparedWhere = " and ( " ;
while ( collectionRelated . next ( ) ) {
enter = true ;
preparedWhere + = " mdc.collid=' " + collectionRelated . getString ( 1 ) + " ' or " ;
}
ResultSet metadataSelected = DBInterface . queryDB ( " select collid, mfid from DLRELATEDMETADATAFORMAT where dlid=' " + getResource ( ) . getID ( ) + " '; " ) ;
//recovering possible previsious selection for metadataFormat
while ( metadataSelected . next ( ) ) {
if ( selectedMetadataStructure . containsKey ( metadataSelected . getString ( 1 ) ) )
selectedMetadataStructure . get ( metadataSelected . getString ( 1 ) ) . add ( metadataSelected . getString ( 2 ) ) ;
else {
ArrayList < String > temp = new ArrayList < String > ( ) ;
temp . add ( metadataSelected . getString ( 2 ) ) ;
selectedMetadataStructure . put ( metadataSelected . getString ( 1 ) , temp ) ;
}
}
if ( ! enter ) throw new RemoteException ( " no collection selected for this DL " ) ;
else preparedWhere = preparedWhere . substring ( 0 , preparedWhere . length ( ) - 4 ) + " ) " ;
totalMF = DBInterface . queryDB ( " select MDFORMAT.id, MDFORMAT.name, MDFORMAT.schemauri, MDFORMAT.language from MDFORMAT; " ) ;
resDerivable = DBInterface . queryDB ( " select mdc.collid, mdc.collname, mdc.colldesc , collmdf.id as mdfid from (select * from DERIVABLEMDF INNER JOIN MDFORMAT on DERIVABLEMDF.mdfid= MDFORMAT.id) " +
" as COLLMDF,(select COLLECTION.id as collid, COLLECTION.name as collname, COLLECTION.description as colldesc, MDCOLLECTION.id as mdid from COLLECTION INNER JOIN MDCOLLECTION " +
" ON COLLECTION.id = MDCOLLECTION.relatedcollectionid) as MDC where COLLMDF.mdcollid= MDC.mdid " + preparedWhere + " ; " ) ;
resNative = DBInterface . queryDB ( " select mdc.collid, mdc.collname, mdc.colldesc , collmdf.id as mdfid from (select * from NATIVEMDF INNER JOIN MDFORMAT on NATIVEMDF.mdfid= MDFORMAT.id) " +
" as COLLMDF,(select COLLECTION.id as collid, COLLECTION.name as collname, COLLECTION.description as colldesc, MDCOLLECTION.id as mdid from COLLECTION INNER JOIN MDCOLLECTION " +
" ON COLLECTION.id = MDCOLLECTION.relatedcollectionid) as MDC where COLLMDF.mdcollid= MDC.mdid " + preparedWhere + " ; " ) ;
} catch ( Exception e ) { //logger.error("ModelService: "+e.getMessage());
throw new GCUBEFault ( e ) ;
}
2008-10-21 19:09:24 +02:00
return XMLUtil . PrepareMCFormatXML ( null , null , null , selectedMetadataStructure ) ;
2008-04-22 16:54:47 +02:00
}
/ * *
*
* Sets selected Metadata Format
*
* @param request
* @return void
* @throws RemoteException -
* /
public void setMetadataRelatedToCollection ( SetMDFormatArgs request ) throws GCUBEFault {
try {
DBInterface . ExecuteUpdate ( " DELETE FROM DLRELATEDMETADATAFORMAT WHERE DLRELATEDMETADATAFORMAT.dlid=' " + getResource ( ) . getId ( ) + " '; " ) ;
String [ ] singleElement ;
String key = ( String ) getResource ( ) . getId ( ) ;
//logger.debug(request.getCollectionIDArray().length+" "+request.getMdFormatIDArray().length+" "+request.getCheckedArray().length+" "+request.getCheckedArray(0).getCheckedRowElement().length);
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCollectionIDArray ( ) . length ) ;
ArrayList < String > row = null ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getCollectionIDArray ( ) . length ; i + + )
for ( int j = 0 ; j < request . getMdFormatIDArray ( ) . length ; j + + )
{
if ( request . getCheckedArray ( i ) . getCheckedRowElement ( j ) ) {
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 3 ) ;
row . add ( key ) ;
row . add ( request . getCollectionIDArray ( i ) ) ;
row . add ( request . getMdFormatIDArray ( j ) ) ;
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
}
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDMETADATAFORMAT " , values ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
/ * *
* Return an xml with the selectable functionalities
* String
*
* @param request void
* @return an xml String containing selectable functionalities
* @throws RemoteException -
* /
public String getFunctionality ( ) throws GCUBEFault {
ResultSet resFunct = null ;
ResultSet selectedFuncRes = null ;
ResultSet selectedCSRes = null ;
ArrayList < Integer > selectedFunctionality = new ArrayList < Integer > ( ) ;
ArrayList < String > selectedCS = new ArrayList < String > ( ) ;
try {
DBInterface . connect ( ) ;
resFunct = DBInterface . queryDB ( " select * from functionality where father is null; " ) ;
2008-10-21 19:09:24 +02:00
selectedFuncRes = DBInterface . queryDB ( " select funcid from DLRELATEDFUNCT where vreid=' " + getResource ( ) . getID ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( selectedFuncRes . next ( ) )
selectedFunctionality . add ( selectedFuncRes . getInt ( 1 ) ) ;
2008-10-21 19:09:24 +02:00
selectedCSRes = DBInterface . queryDB ( " select csid from VRERELATEDCS where vreid=' " + getResource ( ) . getID ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( selectedCSRes . next ( ) )
selectedCS . add ( selectedCSRes . getString ( 1 ) ) ;
} catch ( Exception e ) {
//logger.error("VDLModel Service: error retreiving functionality");
e . printStackTrace ( ) ;
throw new GCUBEFault ( e ) ;
}
2008-04-22 18:28:11 +02:00
return XMLUtil . PrepareFunctionalityXML ( resFunct , selectedFunctionality , selectedCS ) ;
2008-04-22 16:54:47 +02:00
}
/ * *
*
*
*
* @return void
* @throws RemoteException -
* /
public void setFunctionality ( FunctionalityIDArray request ) throws GCUBEFault {
try {
2008-10-21 19:09:24 +02:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDFUNCT WHERE VRERELATEDFUNCT.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDCS WHERE VRERELATEDCS.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
String dlKey = ( String ) getResource ( ) . getId ( ) ;
//logger.debug("KEY: "+dlKey);
if ( request . getFunctionalityIDElement ( ) ! = null ) {
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getFunctionalityIDElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getFunctionalityIDElement ( ) . length ; i + + )
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
row . add ( request . getFunctionalityIDElement ( ) [ i ] ) ;
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDFUNCT " , values ) ;
2008-04-22 16:54:47 +02:00
}
if ( request . getCsIDElement ( ) ! = null )
{
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCsIDElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getCsIDElement ( ) . length ; i + + )
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
row . add ( request . getCsIDElement ( ) [ i ] ) ;
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDCS " , values ) ;
2008-04-22 16:54:47 +02:00
}
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
/ * *
* Return an XML with Quality parameter to insert
*
* @param request void
* @return a XML format String
* @throws RemoteException -
* /
public String getQuality ( ) throws GCUBEFault {
2008-04-22 18:28:11 +02:00
return XMLUtil . PrepareQualityXML ( ) ;
2008-04-22 16:54:47 +02:00
}
/ * *
* Sets Quality parameters
*
* @param request
* @throws RemoteException -
* /
public void setQuality ( String request ) throws GCUBEFault {
}
/ * *
*
* set the DL state to Pending
*
* @param request
* @return
* @throws RemoteException -
* /
2008-10-21 19:09:24 +02:00
public void setVREtoPendingState ( ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
try {
2008-10-21 19:09:24 +02:00
DBInterface . ExecuteUpdate ( " UPDATE VRE SET STATUS='Pending' WHERE VRE.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
/ * *
*
* @param request
* @return
* @throws RemoteException -
* /
2008-10-22 19:43:44 +02:00
public void deployVRE ( ) throws GCUBEFault {
try {
DBInterface . ExecuteUpdate ( " UPDATE VRE SET STATUS='Deploying' WHERE VRE.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
} catch ( ResourceException e1 ) {
throw new GCUBEFault ( e1 ) ;
}
VREManagerServiceAddressingLocator vreManAL = new VREManagerServiceAddressingLocator ( ) ;
try {
VREManagerPortType vreManagerPT = vreManAL . getVREManagerPortTypePort ( ) ;
} catch ( ServiceException e ) {
throw new GCUBEFault ( e ) ;
}
/ *
2008-04-22 16:54:47 +02:00
DLManagementFactoryServiceAddressingLocator dlMan = new DLManagementFactoryServiceAddressingLocator ( ) ;
try {
//retreive and connect to the DLManagement
EndpointReferenceType eprDLMan = new EndpointReferenceType ( new AttributedURI ( DISHLSClient . getRunningInstanceManager ( null , getMyEPR ( ) ) . getEPRsRIFromClassAndName ( " Keeper " , " DLManagement " , " diligentproject/keeperservice/dlmanagement/DLManagementFactoryService " , null , getMyEPR ( ) ) [ 0 ] ) ) ;
DLManagementFactoryPortType dlManagementFactory = dlMan . getDLManagementFactoryPortTypePort ( eprDLMan ) ;
// authorization control (if in the container the security is enabled)
if ( ModelFactoryService . isSecurityEnabled ) {
CredentialManager cred = new CredentialManager ( ) ;
ConfigureSecurity . setSecurity ( ( ( javax . xml . rpc . Stub ) dlManagementFactory ) , cred . getCredentials ( ) ) ;
}
logger . debug ( " DLManagement retreived " ) ;
String dlId = ( String ) getResource ( ) . getId ( ) ;
CreateDLMessage createDLMessage = new CreateDLMessage ( ) ;
createDLMessage . setVDLUniqueID ( dlId ) ;
ResultSet dlGenRes = DBInterface . queryDB ( " select name, description, dldesigner, dlmanager, intervalto, id from DL where DL.id=' " + dlId + " '; " ) ;
if ( dlGenRes . next ( ) ) {
createDLMessage . setDLName ( ( new NAL ( ) . getDefaultVO ( ) ) + " / " + dlGenRes . getString ( 1 ) ) ;
createDLMessage . setDescription ( dlGenRes . getString ( 2 ) ) ;
createDLMessage . setDLDesigner ( dlGenRes . getString ( 3 ) ) ;
createDLMessage . setDLManager ( dlGenRes . getString ( 4 ) ) ;
Calendar terminationTime = Calendar . getInstance ( ) ;
terminationTime . setTime ( dlGenRes . getDate ( 5 ) ) ;
createDLMessage . setDLTerminationTime ( terminationTime ) ;
createDLMessage . setVDLUniqueID ( dlGenRes . getString ( 6 ) ) ;
createDLMessage . setIsSecurityEnabled ( ModelFactoryService . isSecurityEnabled ) ;
} else throw new RemoteException ( " VDLModel Service: impossible to retreive specific DL " ) ;
//logger.debug("Setted first parameters");
ArrayList < String > tempArray = new ArrayList < String > ( ) ;
//retreive and set collection ids
ResultSet dlCollRes = DBInterface . queryDB ( " select collid from DLRELATEDCOLLECTION where DLRELATEDCOLLECTION.dlid=' " + dlId + " '; " ) ;
for ( int i = 0 ; dlCollRes . next ( ) ; i + + )
tempArray . add ( dlCollRes . getString ( 1 ) ) ;
createDLMessage . setColIDsList ( tempArray . toArray ( new String [ 0 ] ) ) ;
tempArray = new ArrayList < String > ( ) ;
//retreive Metadata IDs
ResultSet dlMetadataRes = DBInterface . queryDB ( " select DISTINCT NATIVEMDF.MDCOLLID from DLRELATEDMETADATAFORMAT, NATIVEMDF where DLRELATEDMETADATAFORMAT.mfid=NATIVEMDF.mdfid and DLRELATEDMETADATAFORMAT.dlid=' " + dlId + " '; " ) ;
for ( int i = 0 ; dlMetadataRes . next ( ) ; i + + )
tempArray . add ( dlMetadataRes . getString ( 1 ) ) ;
createDLMessage . setMcIDsList ( tempArray . toArray ( new String [ 0 ] ) ) ;
//TODO: TP retriving is a mistery :)
//adding functionality to DLManagement request
tempArray = new ArrayList < String > ( ) ;
ResultSet dlRelatedFunctionality = DBInterface . queryDB ( " select RELATEDSERVICEID.id from RELATEDSERVICEID, SERVICES, DLRELATEDFUNCT where DLRELATEDFUNCT.dlid=' " + dlId + " ' and SERVICES.id=DLRELATEDFUNCT.funcid and SERVICES.class=RELATEDSERVICEID.class and SERVICES.name=RELATEDSERVICEID.name; " ) ;
for ( int i = 0 ; dlRelatedFunctionality . next ( ) ; i + + ) {
tempArray . add ( dlRelatedFunctionality . getString ( 1 ) ) ;
logger . debug ( " ServiceID: " + dlRelatedFunctionality . getString ( 1 ) ) ;
}
createDLMessage . setServiceIDsList ( tempArray . toArray ( new String [ 0 ] ) ) ;
//adding DHN to DLManagement request
tempArray = new ArrayList < String > ( ) ;
ResultSet dlRelatedDHN = DBInterface . queryDB ( " select DLRELATEDDHN.dhnid from DLRELATEDDHN where DLRELATEDDHN.dlid=' " + dlId + " ' " ) ;
for ( int i = 0 ; dlRelatedDHN . next ( ) ; i + + )
tempArray . add ( dlRelatedDHN . getString ( 1 ) ) ;
createDLMessage . setDhnIDsList ( tempArray . toArray ( new String [ 0 ] ) ) ;
//adding cs to DLManagement request
tempArray = new ArrayList < String > ( ) ;
ResultSet dlCSRes = DBInterface . queryDB ( " select csid from DLRELATEDCS where DLRELATEDCS.dlid=' " + getResource ( ) . getId ( ) + " '; " ) ;
for ( int i = 0 ; dlCSRes . next ( ) ; i + + )
tempArray . add ( dlCSRes . getString ( 1 ) ) ;
createDLMessage . setCsIDsList ( tempArray . toArray ( new String [ 0 ] ) ) ;
//DLManagement invocation
dlManagementFactory . createDL ( createDLMessage ) ;
} catch ( Exception e ) {
logger . error ( " VDLModel Service: Error Deploying DL " + e . getMessage ( ) ) ;
e . printStackTrace ( ) ;
DBInterface . ExecuteUpdate ( " UPDATE DL SET STATUS='Failed' WHERE DL.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
throw new RemoteException ( " VDLModel Service: Error Deploying DL " , e ) ;
}
* /
}
2008-04-22 15:55:32 +02:00
}