commit for release 1.8
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/vre-management/VREModeler@19616 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
419e4a1472
commit
4787123ded
|
@ -3,3 +3,4 @@ lib.dir = Dependencies/VREModeler
|
|||
wsdl.1 = ModelerFactory
|
||||
wsdl.2 = ModelerService
|
||||
namespace.1=http://gcube-system.org/namespaces/vremanagement/vremodeler
|
||||
namespace.2=http://gcube-system.org/namespaces/vremanagement/vremodeler/types
|
|
@ -17,7 +17,7 @@
|
|||
override="false" />
|
||||
|
||||
<environment
|
||||
name="vremanagerTimeout"
|
||||
name="resourceManagerTimeout"
|
||||
value="600000"
|
||||
type="java.lang.String"
|
||||
override="false" />
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
CREATE CACHED TABLE COLLECTION(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR,DESCRIPTION VARCHAR,MEMBERS VARCHAR,CREATION VARCHAR,LASTUPDATE VARCHAR)
|
||||
CREATE CACHED TABLE GHN(ID VARCHAR NOT NULL PRIMARY KEY,HOST VARCHAR,SECURITY VARCHAR,UPTIME VARCHAR,MAINMEMORYVA VARCHAR,MAINMEMORYVS VARCHAR,LOCALAS VARCHAR,LOCATION VARCHAR,COUNTRY VARCHAR,DOMAIN VARCHAR)
|
||||
CREATE CACHED TABLE MCOLLECTION(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR,DESCRIPTION VARCHAR,RELATEDCOLLECTIONID VARCHAR NOT NULL,CONSTRAINT SYS_FK_50 FOREIGN KEY(RELATEDCOLLECTIONID) REFERENCES COLLECTION(ID))
|
||||
CREATE CACHED TABLE VRE(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR NOT NULL,DESCRIPTION VARCHAR NOT NULL,VREDESIGNER VARCHAR NOT NULL,VREMANAGER VARCHAR NOT NULL,INTERVALFROM DATE,INTERVALTO DATE,EPR VARCHAR,STATUS VARCHAR)
|
||||
CREATE CACHED TABLE VRE(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR NOT NULL,DESCRIPTION VARCHAR NOT NULL,VREDESIGNER VARCHAR NOT NULL,VREMANAGER VARCHAR NOT NULL,INTERVALFROM DATE,INTERVALTO DATE,STATUS VARCHAR)
|
||||
CREATE CACHED TABLE CS(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR NOT NULL,DESCRIPTION VARCHAR NOT NULL)
|
||||
CREATE CACHED TABLE RUNNINGINSTANCE(ID VARCHAR NOT NULL PRIMARY KEY,NAME VARCHAR NOT NULL, CLASS VARCHAR NOT NULL)
|
||||
CREATE CACHED TABLE GHNRELATEDRI(GHNID VARCHAR NOT NULL,RIID VARCHAR NOT NULL,PRIMARY KEY(GHNID,RIID))
|
||||
|
|
|
@ -6,7 +6,8 @@
|
|||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:coretypes="http://gcube-system.org/namespaces/common/core/types"
|
||||
xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
|
||||
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" >
|
||||
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
|
||||
xmlns:vretypes="http://gcube-system.org/namespaces/vremanagement/vremodeler/types">
|
||||
|
||||
<import namespace="http://gcube-system.org/namespaces/common/core/faults" location="../gcube/common/core/faults/GCUBEFaults.wsdl"/>
|
||||
|
||||
|
@ -24,7 +25,7 @@
|
|||
|
||||
<xsd:import namespace="http://gcube-system.org/namespaces/common/core/types" schemaLocation="../gcube/common/core/types/GCUBETypes.xsd"/>
|
||||
<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing" schemaLocation="../ws/addressing/WS-Addressing.xsd" />
|
||||
|
||||
<xsd:import namespace="http://gcube-system.org/namespaces/vremanagement/vremodeler/types" schemaLocation="VRETypes.xsd"/>
|
||||
<!-- REQUESTS AND RESPONSES -->
|
||||
|
||||
|
||||
|
@ -33,7 +34,7 @@
|
|||
<xsd:element name="createResourceResponse" type="wsa:EndpointReferenceType"/>
|
||||
|
||||
|
||||
<xsd:element name="getAllVREsMessageResponse" type="xsd:string"/>
|
||||
<xsd:element name="getAllVREsMessageResponse" type="vretypes:ReportList"/>
|
||||
<xsd:element name="getAllVREsMessageRequest" type="coretypes:VOID"/>
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"
|
||||
xmlns:coretypes="http://gcube-system.org/namespaces/common/core/types"
|
||||
xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
|
||||
xmlns:provider="http://gcube-system.org/namespaces/common/core/porttypes/GCUBEProvider">
|
||||
xmlns:provider="http://gcube-system.org/namespaces/common/core/porttypes/GCUBEProvider"
|
||||
xmlns:vretypes="http://gcube-system.org/namespaces/vremanagement/vremodeler/types">
|
||||
|
||||
|
||||
<import namespace="http://gcube-system.org/namespaces/common/core/porttypes/GCUBEProvider" location="../gcube/common/core/providers/GCUBEProvider.wsdl"/>
|
||||
|
@ -29,31 +30,22 @@
|
|||
<xsd:schema targetNamespace="http://gcube-system.org/namespaces/vremanagement/vremodeler"
|
||||
xmlns:tns="http://gcube-system.org/namespaces/vremanagement/vremodeler">
|
||||
<xsd:import namespace="http://gcube-system.org/namespaces/common/core/types" schemaLocation="../gcube/common/core/types/GCUBETypes.xsd"/>
|
||||
<xsd:import namespace="http://gcube-system.org/namespaces/vremanagement/vremodeler/types" schemaLocation="VRETypes.xsd"/>
|
||||
|
||||
|
||||
<!-- REQUESTS AND RESPONSES -->
|
||||
|
||||
<xsd:element name="getVREModelRequestMessage" type="coretypes:VOID"/>
|
||||
<xsd:element name="getDescriptionRequestMessage" type="coretypes:VOID"/>
|
||||
|
||||
<xsd:element name="getVREModelResponseMessage" type="xsd:string"/>
|
||||
<xsd:element name="getDescriptionResponseMessage" type="vretypes:VREDescription"/>
|
||||
|
||||
<xsd:complexType name="VRERequest">
|
||||
<xsd:sequence>
|
||||
<xsd:element name="VREName" type="xsd:string" minOccurs="1" maxOccurs="1" />
|
||||
<xsd:element name="VREDescription" type="xsd:string" minOccurs="1" maxOccurs="1" />
|
||||
<xsd:element name="VREDesigner" type="xsd:string" minOccurs="1" maxOccurs="1" />
|
||||
<xsd:element name="VREManager" type="xsd:string" minOccurs="1" maxOccurs="1" />
|
||||
<xsd:element name="StartTime" type="xsd:long" minOccurs="1" maxOccurs="1" />
|
||||
<xsd:element name="EndTime" type="xsd:long" minOccurs="1" maxOccurs="1" />
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
<xsd:element name="setDescriptionRequestMessage" type="vretypes:VREDescription"/>
|
||||
|
||||
<xsd:element name="setVREModelRequestMessage" type="tns:VRERequest"/>
|
||||
|
||||
<xsd:element name="setVREModelResponseMessage" type="coretypes:VOID"/>
|
||||
<xsd:element name="setDescriptionResponseMessage" type="coretypes:VOID"/>
|
||||
|
||||
<xsd:element name="getCollectionRequestMessage" type="coretypes:VOID"/>
|
||||
|
||||
<xsd:element name="getCollectionResponseMessage" type="xsd:string"/>
|
||||
<xsd:element name="getCollectionResponseMessage" type="vretypes:CollectionList"/>
|
||||
|
||||
<xsd:complexType name="collectionArray">
|
||||
<xsd:sequence>
|
||||
|
@ -67,7 +59,7 @@
|
|||
|
||||
<xsd:element name="getMDCollectionRequestMessage" type="coretypes:VOID"/>
|
||||
|
||||
<xsd:element name="getMDCollectionResponseMessage" type="xsd:string"/>
|
||||
<xsd:element name="getMDCollectionResponseMessage" type="vretypes:metadataFormatResponse"/>
|
||||
|
||||
<xsd:complexType name="checkedRows">
|
||||
<xsd:sequence>
|
||||
|
@ -96,7 +88,7 @@
|
|||
|
||||
<xsd:element name="setQualityResponseMessage" type="coretypes:VOID"/>
|
||||
|
||||
<xsd:element name="getFunctionalityResponseMessage" type="xsd:string"/>
|
||||
<xsd:element name="getFunctionalityResponseMessage" type="vretypes:FunctionalityList"/>
|
||||
|
||||
<xsd:element name="getFunctionalityRequestMessage" type="coretypes:VOID"/>
|
||||
|
||||
|
@ -111,7 +103,7 @@
|
|||
|
||||
<xsd:element name="setFunctionalityRequestMessage" type="tns:functionalityIDArray"/>
|
||||
|
||||
<xsd:element name="getGHNResponseMessage" type="xsd:string"/>
|
||||
<xsd:element name="getGHNResponseMessage" type="vretypes:GHNList"/>
|
||||
|
||||
<xsd:element name="getGHNRequestMessage" type="coretypes:VOID"/>
|
||||
|
||||
|
@ -173,18 +165,18 @@
|
|||
|
||||
============================================================-->
|
||||
|
||||
<message name="GetVREModelInputMessage">
|
||||
<part name="request" element="tns:getVREModelRequestMessage"/>
|
||||
<message name="GetDescriptionInputMessage">
|
||||
<part name="request" element="tns:getDescriptionRequestMessage"/>
|
||||
</message>
|
||||
<message name="GetVREModelOutputMessage">
|
||||
<part name="response" element="tns:getVREModelResponseMessage"/>
|
||||
<message name="GetDescriptionOutputMessage">
|
||||
<part name="response" element="tns:getDescriptionResponseMessage"/>
|
||||
</message>
|
||||
|
||||
<message name="SetVREModelInputMessage">
|
||||
<part name="request" element="tns:setVREModelRequestMessage"/>
|
||||
<message name="SetDescriptionInputMessage">
|
||||
<part name="request" element="tns:setDescriptionRequestMessage"/>
|
||||
</message>
|
||||
<message name="SetVREModelOutputMessage">
|
||||
<part name="response" element="tns:setVREModelResponseMessage"/>
|
||||
<message name="SetDescriptionOutputMessage">
|
||||
<part name="response" element="tns:setDescriptionResponseMessage"/>
|
||||
</message>
|
||||
|
||||
<message name="GetCollectionInputMessage">
|
||||
|
@ -290,14 +282,14 @@
|
|||
wsdlpp:extends="provider:GCUBEProvider"
|
||||
wsrp:ResourceProperties="tns:ModelerProperties">
|
||||
|
||||
<operation name="setVREModel">
|
||||
<input message="tns:SetVREModelInputMessage"/>
|
||||
<output message="tns:SetVREModelOutputMessage"/>
|
||||
<operation name="setDescription">
|
||||
<input message="tns:SetDescriptionInputMessage"/>
|
||||
<output message="tns:SetDescriptionOutputMessage"/>
|
||||
</operation>
|
||||
|
||||
<operation name="getVREModel">
|
||||
<input message="tns:GetVREModelInputMessage"/>
|
||||
<output message="tns:GetVREModelOutputMessage"/>
|
||||
<operation name="getDescription">
|
||||
<input message="tns:GetDescriptionInputMessage"/>
|
||||
<output message="tns:GetDescriptionOutputMessage"/>
|
||||
</operation>
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,157 @@
|
|||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://gcube-system.org/namespaces/vremanagement/vremodeler/types"
|
||||
xmlns:tns="http://gcube-system.org/namespaces/vremanagement/vremodeler/types"
|
||||
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||
|
||||
<!-- VRE types -->
|
||||
<xs:complexType name="VREDescription">
|
||||
<xs:sequence>
|
||||
<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1" />
|
||||
<xs:element name="description" type="xs:string" minOccurs="1" maxOccurs="1" />
|
||||
<xs:element name="designer" type="xs:string" minOccurs="1" maxOccurs="1" />
|
||||
<xs:element name="manager" type="xs:string" minOccurs="1" maxOccurs="1" />
|
||||
<xs:element name="startTime" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
|
||||
<xs:element name="endTime" type="xs:dateTime" minOccurs="1" maxOccurs="1" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- GHN Type -->
|
||||
|
||||
<xs:complexType name="GHNList">
|
||||
<xs:sequence>
|
||||
<xs:element name="list" type="tns:GHNType" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="GHNType">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element name="host" type="xs:string"/>
|
||||
<xs:element name="security" type="xs:string"/>
|
||||
<xs:element name="upTime" type="xs:string"/>
|
||||
<xs:element name="memory">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="virtulaAvailable" type="xs:string"/>
|
||||
<xs:element name="virtulaSize" type="xs:string"/>
|
||||
<xs:element name="localAvailableSpace" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="site">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="location" type="xs:string"/>
|
||||
<xs:element name="country" type="xs:string"/>
|
||||
<xs:element name="domain" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="relatedRIs" type="tns:RunningInstance" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="vreManagerUse" type="xs:boolean"/>
|
||||
<xs:element name="selectable" type="xs:boolean"/>
|
||||
<xs:element name="selected" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="RunningInstance">
|
||||
<xs:sequence>
|
||||
<xs:element name="serviceName" type="xs:string"/>
|
||||
<xs:element name="serviceClass" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Collection Type -->
|
||||
<xs:complexType name="CollectionList">
|
||||
<xs:sequence>
|
||||
<xs:element name="list" type="tns:CollectionType" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="CollectionType">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="info">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="description" type="xs:string"/>
|
||||
<xs:element name="numberOfMembers" type="xs:int"/>
|
||||
<xs:element name="creationTime" type="xs:dateTime"/>
|
||||
<xs:element name="lastUpdateTime" type="xs:dateTime"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="selected" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Metadata Format types -->
|
||||
<xs:complexType name="MetadataFormatItem">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="uri" type="xs:string"/>
|
||||
<xs:element name="language" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="MetadataFormatCollectionRelation">
|
||||
<xs:sequence>
|
||||
<xs:element name="collId" type="xs:string"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="description" type="xs:string"/>
|
||||
<xs:element name="mfList" type="tns:metadataFormatRelation" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="metadataFormatRelation">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element name="selected" type="xs:boolean"/>
|
||||
<xs:element name="selectable" type="xs:boolean"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="metadataFormatResponse">
|
||||
<xs:sequence>
|
||||
<xs:element name="metadataFromats" type="tns:MetadataFormatItem" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="collections" type="tns:MetadataFormatCollectionRelation" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- Functionality Types -->
|
||||
|
||||
<xs:complexType name="FunctionalityList">
|
||||
<xs:sequence>
|
||||
<xs:element name="list" type="tns:FunctionalityItem" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="FunctionalityItem">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:int"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="description" type="xs:string"/>
|
||||
<xs:element name="selected" type="xs:boolean"/>
|
||||
<xs:element name="childs" type="tns:FunctionalityItem" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<!-- VRE Report Type -->
|
||||
<xs:complexType name="ReportList">
|
||||
<xs:sequence>
|
||||
<xs:element name="list" type="tns:Report" minOccurs="0" maxOccurs="unbounded" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="Report">
|
||||
<xs:sequence>
|
||||
<xs:element name="id" type="xs:string"/>
|
||||
<xs:element name="name" type="xs:string"/>
|
||||
<xs:element name="description" type="xs:string"/>
|
||||
<xs:element name="state" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
|
@ -1,13 +1,11 @@
|
|||
package org.gcube.vremanagement.vremodeler.consumers;
|
||||
|
||||
import java.io.StringReader;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBECollectionQuery;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.BaseNotificationConsumer;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.NotificationEvent;
|
||||
import org.gcube.common.core.resources.GCUBECollection;
|
||||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
|
@ -31,16 +29,17 @@ public class CollectionConsumer extends BaseNotificationConsumer{
|
|||
logger.trace("notificetion received");
|
||||
ServiceContext.getContext().setScope(this.scope);
|
||||
String id= event.getPayload().getMessage()[0].getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String profile=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(2).getChildNodes().item(0).getNodeValue();
|
||||
|
||||
if (operation.compareTo("create")==0){
|
||||
logger.trace("adding a new GHN in DB");
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBECollectionQuery query= client.getQuery(GCUBECollectionQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("/ID",id));
|
||||
Thread.sleep(60000);
|
||||
new CollectionHandler().add(client.execute(query, this.scope).get(0));
|
||||
} else if (operation.compareTo("remove")==0){
|
||||
logger.trace("removing a GHN from DB");
|
||||
GCUBECollection collection= GHNContext.getImplementation(GCUBECollection.class);
|
||||
collection.load(new StringReader(profile));
|
||||
new CollectionHandler().add(collection);
|
||||
} else if (operation.compareTo("destroy")==0){
|
||||
logger.trace("removing a collection from DB");
|
||||
new CollectionHandler().drop(id);
|
||||
}
|
||||
|
||||
}catch(Exception e){logger.error("error in notification received",e);}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
package org.gcube.vremanagement.vremodeler.consumers;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBEGHNQuery;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.BaseNotificationConsumer;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.NotificationEvent;
|
||||
import org.gcube.common.core.resources.GCUBEHostingNode;
|
||||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
|
@ -29,17 +29,18 @@ public class GHNConsumer extends BaseNotificationConsumer{
|
|||
|
||||
public void onNotificationReceived(NotificationEvent event){
|
||||
try{
|
||||
logger.trace("notificetion received");
|
||||
logger.trace("notification received");
|
||||
ServiceContext.getContext().setScope(this.scope);
|
||||
String id= event.getPayload().getMessage()[0].getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String profile=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(2).getChildNodes().item(0).getNodeValue();
|
||||
//logger.trace("received id: "+id+" op: "+operation+" profile: "+profile);
|
||||
|
||||
if (operation.compareTo("create")==0){
|
||||
logger.trace("adding a new GHN in DB");
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBEGHNQuery query= client.getQuery(GCUBEGHNQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("/ID",id));
|
||||
Thread.sleep(60000);
|
||||
new GHNHandler().add(client.execute(query, this.scope).get(0));
|
||||
GCUBEHostingNode ghn= GHNContext.getImplementation(GCUBEHostingNode.class);
|
||||
ghn.load(new StringReader(profile));
|
||||
new GHNHandler().add(ghn);
|
||||
} else if (operation.compareTo("destroy")==0){
|
||||
logger.trace("removing a GHN from DB");
|
||||
new GHNHandler().drop(id);
|
||||
|
|
|
@ -1,15 +1,8 @@
|
|||
package org.gcube.vremanagement.vremodeler.consumers;
|
||||
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBEGenericQuery;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBEGenericResourceQuery;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.BaseNotificationConsumer;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.NotificationEvent;
|
||||
import org.gcube.common.core.resources.GCUBEGenericResource;
|
||||
|
@ -39,39 +32,31 @@ private GCUBELog logger= new GCUBELog(GHNConsumer.class);
|
|||
try{
|
||||
ServiceContext.getContext().setScope(this.scope);
|
||||
String id= event.getPayload().getMessage()[0].getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String profile=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(2).getChildNodes().item(0).getNodeValue();
|
||||
|
||||
logger.info("notification received for genericResource "+id+" and operation "+operation);
|
||||
|
||||
if (id.compareTo(this.functionalityResourceId)==0 && (operation.compareTo("update")==0)){
|
||||
logger.trace("notification received for functionalityResource with id "+id+" in scope "+scope.toString());
|
||||
KGCUBEGenericFunctionalityResource resource= new KGCUBEGenericFunctionalityResource();
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBEGenericResourceQuery query= client.getQuery(GCUBEGenericResourceQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("/Profile/Name","FuctionalitiesResource"), new AtomicCondition("/Profile/SecondaryType","VREModelerResource"));
|
||||
GCUBEGenericQuery genericQuery= client.getQuery(GCUBEGenericQuery.class);
|
||||
genericQuery.setExpression(query.getExpression());
|
||||
Thread.sleep(60000);
|
||||
resource.load(new StringReader(client.execute(genericQuery, ServiceContext.getContext().getScope()).get(0).toString()));
|
||||
resource.load(new StringReader(profile));
|
||||
//FunctionalityHandler
|
||||
FunctionalityHandler functionalityHandler= new FunctionalityHandler();
|
||||
functionalityHandler.add(resource);
|
||||
}else if (operation.compareTo("create")==0){
|
||||
logger.trace("notification received for generic resource with operation create");
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBEGenericResourceQuery query= client.getQuery(GCUBEGenericResourceQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("/ID",id));
|
||||
GCUBEGenericResource resource =client.execute(query, ServiceContext.getContext().getScope()).get(0);
|
||||
|
||||
if (resource.getName().compareTo("FuctionalitiesResource")==0){
|
||||
GCUBEGenericResource genericResource= GHNContext.getImplementation(GCUBEGenericResource.class);
|
||||
genericResource.load(new StringReader(profile));
|
||||
if (genericResource.getName().compareTo("FuctionalitiesResource")==0){
|
||||
FunctionalityHandler functionalityHandler= new FunctionalityHandler();
|
||||
KGCUBEGenericFunctionalityResource functResource=new KGCUBEGenericFunctionalityResource();
|
||||
StringWriter sw= new StringWriter();
|
||||
resource.store(sw);
|
||||
functResource.load(new StringReader(sw.toString()));
|
||||
functResource.load(new StringReader(profile));
|
||||
functionalityHandler.add(functResource);
|
||||
} else
|
||||
if (ServiceContext.getContext().getSecondaryTypeGenericResourceRequired().contains(resource.getSecondaryType()))
|
||||
new GenericResourceHandler().add(resource);
|
||||
if (ServiceContext.getContext().getSecondaryTypeGenericResourceRequired().contains(genericResource.getSecondaryType()))
|
||||
new GenericResourceHandler().add(genericResource);
|
||||
}else if (operation.compareTo("destroy")==0){
|
||||
logger.trace("notification received for generic resource with operation destroy");
|
||||
new GenericResourceHandler().drop(id);
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
package org.gcube.vremanagement.vremodeler.consumers;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBEMCollectionQuery;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.BaseNotificationConsumer;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.NotificationEvent;
|
||||
import org.gcube.common.core.resources.GCUBEMCollection;
|
||||
|
@ -32,17 +31,16 @@ public class MCollectionConsumer extends BaseNotificationConsumer{
|
|||
//logger.trace("notification received");
|
||||
ServiceContext.getContext().setScope(this.scope);
|
||||
String id= event.getPayload().getMessage()[0].getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String profile=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(2).getChildNodes().item(0).getNodeValue();
|
||||
if (operation.compareTo("create")==0){
|
||||
logger.trace("adding a new MCollection in DB");
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBEMCollectionQuery query= client.getQuery(GCUBEMCollectionQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("/ID",id));
|
||||
GCUBEMCollection mColl= client.execute(query, this.scope).get(0);
|
||||
Thread.sleep(60000);
|
||||
new MCollectionHandler(mColl.getRelCollection().getCollectionID()).add(mColl);
|
||||
} else if (operation.compareTo("remove")==0){
|
||||
logger.trace("removing a GHN from DB");
|
||||
GCUBEMCollection mCollection= GHNContext.getImplementation(GCUBEMCollection.class);
|
||||
mCollection.load(new StringReader(profile));
|
||||
new MCollectionHandler(mCollection.getRelCollection().getCollectionID()).add(mCollection);
|
||||
} else if (operation.compareTo("destroy")==0){
|
||||
logger.trace("removing a MCollection from DB");
|
||||
new MCollectionHandler(null).drop(id);
|
||||
}
|
||||
|
||||
}catch(Exception e){logger.error("error in notification received",e);}
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
package org.gcube.vremanagement.vremodeler.consumers;
|
||||
|
||||
import java.io.StringReader;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBERIQuery;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.BaseNotificationConsumer;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier.NotificationEvent;
|
||||
import org.gcube.common.core.resources.GCUBERunningInstance;
|
||||
|
@ -32,16 +29,12 @@ public class RunningInstanceConsumer extends BaseNotificationConsumer{
|
|||
logger.trace("notification received for RI");
|
||||
ServiceContext.getContext().setScope(this.scope);
|
||||
String id= event.getPayload().getMessage()[0].getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String profile=event.getPayload().getMessage()[0].getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
|
||||
String operation=event.getPayload().getMessage()[0].getChildNodes().item(2).getChildNodes().item(0).getNodeValue();
|
||||
if (operation.compareTo("create")==0){
|
||||
logger.trace("adding a new RI in DB");
|
||||
ISClient client=GHNContext.getImplementation(ISClient.class);
|
||||
GCUBERIQuery query= client.getQuery(GCUBERIQuery.class);
|
||||
logger.trace("id: "+id);
|
||||
query.addAtomicConditions(new AtomicCondition("/ID",id));
|
||||
Thread.sleep(60000);
|
||||
GCUBERunningInstance ri= client.execute(query, this.scope).get(0);
|
||||
|
||||
GCUBERunningInstance ri= GHNContext.getImplementation(GCUBERunningInstance.class);
|
||||
ri.load(new StringReader(profile));
|
||||
new RunningInstancesHandler(ri.getGHNID()).add(ri);
|
||||
} else if (operation.compareTo("destroy")==0){
|
||||
logger.trace("removing a RI from DB");
|
||||
|
|
|
@ -9,8 +9,10 @@ import org.gcube.common.core.faults.GCUBEFault;
|
|||
import org.gcube.common.core.types.VOID;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.XMLUtil;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.Util;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GetExistingNamesResponseMessage;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.Report;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.ReportList;
|
||||
|
||||
|
||||
|
||||
|
@ -60,7 +62,7 @@ public class ModelFactoryService{
|
|||
res= DBInterface.queryDB("select VRE.name from VRE;");
|
||||
while (res.next())
|
||||
toReturn.add(res.getString(1));
|
||||
}catch(Exception e) {logger.error("error on DB"); throw new GCUBEFault(e);}
|
||||
}catch(Exception e) {logger.error("error on DB",e); throw new GCUBEFault(e);}
|
||||
GetExistingNamesResponseMessage response = new GetExistingNamesResponseMessage();
|
||||
response.setNames(toReturn.toArray(new String[0]));
|
||||
|
||||
|
@ -85,8 +87,7 @@ public class ModelFactoryService{
|
|||
try{
|
||||
ServiceContext.getContext().intializeDB();
|
||||
}catch(Exception e){
|
||||
logger.error("DB inizialization failed"+e);
|
||||
e.printStackTrace();
|
||||
logger.error("DB inizialization failed",e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -101,20 +102,19 @@ public class ModelFactoryService{
|
|||
* @return String
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getAllVREs(VOID arg) throws GCUBEFault{
|
||||
String toReturn = null;
|
||||
public ReportList getAllVREs(VOID arg) throws GCUBEFault{
|
||||
ResultSet res=null;
|
||||
try{
|
||||
DBInterface.connect();
|
||||
res= DBInterface.queryDB("select VRE.name, VRE.description, VRE.status, VRE.epr from VRE;");
|
||||
}catch(Exception e) {logger.error("VREModel: error on DB"); throw new GCUBEFault(e);}
|
||||
res= DBInterface.queryDB("select VRE.name, VRE.description, VRE.status, VRE.id from VRE;");
|
||||
}catch(Exception e) {logger.error("error on DB",e); throw new GCUBEFault(e);}
|
||||
try {
|
||||
toReturn=XMLUtil.PrepareAllVREsXML(res);
|
||||
return new ReportList(Util.prepareVREsList(res).toArray(new Report[0]));
|
||||
} catch (Exception e) {
|
||||
logger.error("VREModel parsing error in function getAllDLs "+e.getMessage());
|
||||
logger.error("parsing error in function getAllVREs ",e);
|
||||
throw new GCUBEFault(e);
|
||||
}
|
||||
return toReturn;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -85,4 +85,6 @@ public class ModelerResource extends GCUBEWSResource {
|
|||
this.getResourcePropertySet().get(RP_FIRSTREPORT).add(reportFirstStep);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,12 +2,11 @@ package org.gcube.vremanagement.vremodeler.impl;
|
|||
|
||||
import java.net.URI;
|
||||
import java.rmi.RemoteException;
|
||||
import java.sql.Date;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Hashtable;
|
||||
import java.util.List;
|
||||
import javax.xml.namespace.QName;
|
||||
import org.gcube.common.core.faults.GCUBEFault;
|
||||
import org.gcube.common.core.faults.GCUBEUnrecoverableFault;
|
||||
import org.gcube.common.core.types.VOID;
|
||||
|
@ -15,28 +14,28 @@ import org.gcube.common.core.utils.logging.GCUBELog;
|
|||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.thread.DeployVRE;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.ModelerCollection;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.XMLUtil;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.Util;
|
||||
import org.gcube.vremanagement.vremodeler.resources.MetadataFormat;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CheckStatusResponse;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CollectionArray;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CollectionList;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CollectionType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityIDArray;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityItem;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityList;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNArray;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNList;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.MetadataFormatResponse;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.SetMDFormatArgs;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VRERequest;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VREDescription;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VREState;
|
||||
import org.globus.wsrf.ResourceException;
|
||||
import org.globus.wsrf.encoding.ObjectSerializer;
|
||||
import org.globus.wsrf.encoding.SerializationException;
|
||||
|
||||
|
||||
|
||||
public class ModelerService {
|
||||
|
||||
public static final String INPROGRESS="In Progress";
|
||||
public static final String DEPLOYED="Deployed";
|
||||
public static final String FAILED="Failed";
|
||||
public static final String PENDING="Pending";
|
||||
public static final String DEPLOYING="Deploying";
|
||||
|
||||
|
||||
private static final GCUBELog logger = new GCUBELog(ModelerService.class);
|
||||
|
||||
protected ModelerResource getResource() throws ResourceException{
|
||||
|
@ -52,35 +51,23 @@ public class ModelerService {
|
|||
* @throws RemoteException -
|
||||
*
|
||||
*/
|
||||
public void setVREModel(VRERequest request) throws GCUBEFault{
|
||||
public void setDescription(VREDescription request) throws GCUBEFault{
|
||||
|
||||
Date dateFrom=null, dateTo=null;
|
||||
Calendar dateFrom=null, dateTo=null;
|
||||
ResultSet res=null;
|
||||
try {
|
||||
res=DBInterface.queryDB("select * from VRE where VRE.id='"+getResource().getId()+"'; ");
|
||||
|
||||
if(res.next())
|
||||
{
|
||||
dateFrom=new Date(request.getStartTime());
|
||||
dateTo=new Date(request.getEndTime());
|
||||
DBInterface.queryDB("update VRE set name='"+request.getVREName()+"', description='"+request.getVREDescription()+"', vredesigner='"+request.getVREDesigner()+"', vremanager= '"+request.getVREManager()+"', intervalfrom='"+dateFrom+"', intervalto='"+dateTo+"' where VRE.id='"+getResource().getId()+"'; ");
|
||||
dateFrom=request.getStartTime();
|
||||
dateTo=request.getEndTime();
|
||||
DBInterface.queryDB("update VRE set name='"+request.getName()+"', description='"+request.getDescription()+"', vredesigner='"+request.getDesigner()+"', vremanager= '"+request.getManager()+"', intervalfrom='"+dateFrom.getTime()+"', intervalto='"+dateTo.getTime()+"' where VRE.id='"+getResource().getId()+"'; ");
|
||||
}else{
|
||||
dateFrom=new Date(request.getStartTime());
|
||||
dateTo=new Date(request.getEndTime());
|
||||
String eprToString;
|
||||
try {
|
||||
eprToString = ObjectSerializer.toString(getResource().getEPR(), new QName(ModelerContext.getPortTypeContext().getNamespace(), "ModelResourceReference"));
|
||||
//logger.debug("EPR: "+eprToString);
|
||||
} catch (SerializationException e) {
|
||||
//logger.error("VDL Model Service: error serializing EPR");
|
||||
logger.error("VDL Model Service: error serializing EPR",e);
|
||||
throw new GCUBEFault(e);
|
||||
}
|
||||
|
||||
DBInterface.ExecuteUpdate("insert into VRE values('"+getResource().getId()+"','"+request.getVREName()+"','"+request.getVREDescription()+"','"+request.getVREDesigner()+"','"+request.getVREManager()+"','"+dateFrom+"','"+dateTo+"','"+eprToString+"','"+INPROGRESS+"'); ");
|
||||
dateFrom=request.getStartTime();
|
||||
dateTo=request.getEndTime();
|
||||
DBInterface.ExecuteUpdate("insert into VRE values('"+getResource().getId()+"','"+request.getName()+"','"+request.getDescription()+"','"+request.getDesigner()+"','"+request.getManager()+"','"+dateFrom+"','"+dateTo+"','"+VREState.IN_PROGRESS+"'); ");
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error(e);
|
||||
throw new GCUBEFault(e);
|
||||
|
@ -97,35 +84,26 @@ public class ModelerService {
|
|||
* @return VoidType
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getVREModel(VOID var) throws GCUBEFault{
|
||||
|
||||
|
||||
String toReturn =null;
|
||||
ResultSet res=null;
|
||||
|
||||
public VREDescription getDescription(VOID var) throws GCUBEFault{
|
||||
//logger.debug("Request DL with ID "+ID);
|
||||
try {
|
||||
String ID=getResource().getId();
|
||||
DBInterface.connect();
|
||||
res=DBInterface.queryDB("select * from VRE where VRE.id='"+ID+"';");
|
||||
toReturn=XMLUtil.PrepareVREModelXML(res);
|
||||
return Util.prepareVREDescription(DBInterface.queryDB("select * from VRE where VRE.id='"+getResource().getId()+"';"));
|
||||
} catch (Exception e) {
|
||||
logger.error("VDLModel parsing error in function getDLModel ",e);
|
||||
logger.error("error getting VRE informations",e);
|
||||
throw new GCUBEFault(e);
|
||||
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* return an XML containing the DHN list
|
||||
* return an XML containing the GHN list
|
||||
*
|
||||
* @param request void
|
||||
* @return a XML String
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getGHNs(VOID var) throws GCUBEFault{
|
||||
logger.info("getGHNs method");
|
||||
public GHNList getGHNs(VOID var) throws GCUBEFault{
|
||||
logger.trace("getGHNs method");
|
||||
ResultSet res;
|
||||
ArrayList<String> relatedGHN=new ArrayList<String>();
|
||||
try{
|
||||
|
@ -139,9 +117,10 @@ public class ModelerService {
|
|||
relatedGHN.add(resRelated.getString(1));
|
||||
if (resRelated.getBoolean(2)) candidatedGHN=resRelated.getString(1);
|
||||
}
|
||||
return XMLUtil.PrepareGHNsXML(res, relatedGHN,candidatedGHN);
|
||||
|
||||
return new GHNList(Util.prepareGHNs(res, relatedGHN,candidatedGHN).toArray(new GHNType[0]));
|
||||
}catch(Exception e) {
|
||||
logger.error("VRE Modeler: error retreiving GHNs",e);
|
||||
logger.error("error retreiving GHNs",e);
|
||||
throw new GCUBEFault(e);}
|
||||
}
|
||||
|
||||
|
@ -188,7 +167,7 @@ public class ModelerService {
|
|||
* @return the collection retrieved from the database
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getCollection(VOID var) throws GCUBEFault{
|
||||
public CollectionList getCollection(VOID var) throws GCUBEFault{
|
||||
ResultSet res;
|
||||
ArrayList<String> relatedCollection=new ArrayList<String>();
|
||||
try{
|
||||
|
@ -206,7 +185,7 @@ public class ModelerService {
|
|||
throw new GCUBEFault(e);}
|
||||
|
||||
|
||||
return XMLUtil.PrepareCollectionXML(res, relatedCollection);
|
||||
return new CollectionList(Util.prepareCollections(res, relatedCollection).toArray(new CollectionType[0]));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -253,7 +232,7 @@ public class ModelerService {
|
|||
* @return a XML format string
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getMetadataRelatedToCollection(VOID var) throws GCUBEFault {
|
||||
public MetadataFormatResponse getMetadataRelatedToCollection(VOID var) throws GCUBEFault {
|
||||
|
||||
Hashtable<ModelerCollection, List<MetadataFormat>> nativeMetadataFormat;
|
||||
Hashtable<ModelerCollection, List<MetadataFormat>> selectedMetadataFormat;
|
||||
|
@ -293,53 +272,14 @@ public class ModelerService {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
//recovering possible previous 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 GCUBEFault("no collection selected for this VRE");
|
||||
else preparedWhere=preparedWhere.substring(0, preparedWhere.length()-4)+") ";
|
||||
|
||||
|
||||
//retrieving all available MDFromat
|
||||
totalMF = DBInterface.queryDB("select MDFORMAT.id, MDFORMAT.name, MDFORMAT.schemauri, MDFORMAT.language from MDFORMAT;");
|
||||
totalMFList= new ArrayList<MetadataFormat>();
|
||||
while (totalMF.next()){
|
||||
MetadataFormat mf= new MetadataFormat(totalMF.getString(1),totalMF.getString(2), new URI(totalMF.getString(3)), totalMF.getString(4) );
|
||||
totalMFList.add(mf);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
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: getMEtadataRelatedToCollection Error ",e);
|
||||
logger.error("getMEtadataRelatedToCollection Error ",e);
|
||||
throw new GCUBEFault(e);
|
||||
}
|
||||
|
||||
|
||||
return XMLUtil.PrepareMCFormatXML( nativeMetadataFormat ,selectedMetadataFormat);
|
||||
return Util.prepareMCFormat( nativeMetadataFormat ,selectedMetadataFormat);
|
||||
}
|
||||
|
||||
|
||||
|
@ -389,7 +329,7 @@ public class ModelerService {
|
|||
* @return an xml String containing selectable functionalities
|
||||
* @throws RemoteException -
|
||||
*/
|
||||
public String getFunctionality(VOID var) throws GCUBEFault {
|
||||
public FunctionalityList getFunctionality(VOID var) throws GCUBEFault {
|
||||
|
||||
ResultSet resFunct=null;
|
||||
ResultSet selectedFuncRes=null;
|
||||
|
@ -411,7 +351,7 @@ public class ModelerService {
|
|||
throw new GCUBEFault(e);
|
||||
}
|
||||
|
||||
return XMLUtil.PrepareFunctionalityXML(resFunct, selectedFunctionality, selectedCS);
|
||||
return new FunctionalityList(Util.prepareFunctionalities(resFunct, selectedFunctionality, selectedCS).toArray(new FunctionalityItem[0]));
|
||||
}
|
||||
|
||||
|
||||
|
@ -476,7 +416,7 @@ public class ModelerService {
|
|||
* @throws RemoteException -
|
||||
*/
|
||||
public String getQuality(VOID var) throws GCUBEFault{
|
||||
return XMLUtil.PrepareQualityXML();
|
||||
return Util.prepareQualityXML();
|
||||
}
|
||||
|
||||
|
||||
|
@ -500,7 +440,7 @@ public class ModelerService {
|
|||
*/
|
||||
public void setVREtoPendingState(VOID var) throws GCUBEFault{
|
||||
try{
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+PENDING+"' WHERE VRE.id='"+getResource().getId()+"';");
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+VREState.PENDING+"' WHERE VRE.id='"+getResource().getId()+"';");
|
||||
|
||||
}catch(Exception e){throw new GCUBEFault(e);}
|
||||
}
|
||||
|
@ -520,7 +460,7 @@ public class ModelerService {
|
|||
}
|
||||
|
||||
try{
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+DEPLOYING+"' WHERE VRE.id='"+resourceID+"';");
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+VREState.DEPLOYING+"' WHERE VRE.id='"+resourceID+"';");
|
||||
} catch (Exception e) {
|
||||
logger.error("DB Error ",e);
|
||||
throw new GCUBEUnrecoverableFault(e);
|
||||
|
|
|
@ -10,9 +10,6 @@ import org.gcube.common.core.contexts.GCUBEServiceContext;
|
|||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.notifier.ISNotifier;
|
||||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.common.core.security.GCUBESecurityManager;
|
||||
import org.gcube.common.core.security.GCUBESecurityManagerImpl;
|
||||
|
||||
import org.gcube.vremanagement.vremodeler.consumers.CollectionConsumer;
|
||||
import org.gcube.vremanagement.vremodeler.consumers.GHNConsumer;
|
||||
import org.gcube.vremanagement.vremodeler.consumers.GenericResourceConsumer;
|
||||
|
@ -72,12 +69,6 @@ public class ServiceContext extends GCUBEServiceContext{
|
|||
this.setSecondaryTypeGenericResourceRequired(genResList.toArray(new String[0]));
|
||||
|
||||
|
||||
GCUBESecurityManager secMan= new GCUBESecurityManagerImpl(){
|
||||
@Override
|
||||
public boolean isSecurityEnabled() {
|
||||
return false;
|
||||
}};
|
||||
|
||||
IStoDBUtil.initDB(scope);
|
||||
new GHNHandler().initialize();
|
||||
new CollectionHandler().initialize();
|
||||
|
@ -89,23 +80,23 @@ public class ServiceContext extends GCUBEServiceContext{
|
|||
//GHNNotification
|
||||
ArrayList<QName> qnameList= new ArrayList<QName>();
|
||||
qnameList.add(GHNConsumer.ghnQName);
|
||||
notifier.registerToISNotification(qnameList, new GHNConsumer(scope), secMan, scope);
|
||||
notifier.registerToISNotification(qnameList, new GHNConsumer(scope), this, scope);
|
||||
//RINotification
|
||||
qnameList= new ArrayList<QName>();
|
||||
qnameList.add(RunningInstanceConsumer.riQName);
|
||||
notifier.registerToISNotification(qnameList, new RunningInstanceConsumer(scope), secMan, scope);
|
||||
notifier.registerToISNotification(qnameList, new RunningInstanceConsumer(scope), this, scope);
|
||||
//CollectionNotification
|
||||
qnameList= new ArrayList<QName>();
|
||||
qnameList.add(CollectionConsumer.collectionQName);
|
||||
notifier.registerToISNotification(qnameList, new CollectionConsumer(scope), secMan, scope);
|
||||
notifier.registerToISNotification(qnameList, new CollectionConsumer(scope), this, scope);
|
||||
//MCollectionNotification
|
||||
qnameList= new ArrayList<QName>();
|
||||
qnameList.add(MCollectionConsumer.mCollectionQName);
|
||||
notifier.registerToISNotification(qnameList, new MCollectionConsumer(scope), secMan, scope);
|
||||
notifier.registerToISNotification(qnameList, new MCollectionConsumer(scope), this, scope);
|
||||
//FunctionalityResource
|
||||
qnameList= new ArrayList<QName>();
|
||||
qnameList.add(GenericResourceConsumer.functionalityQName);
|
||||
notifier.registerToISNotification(qnameList, new GenericResourceConsumer(scope,functionalityHandler.getFunctionalityResourceId()), secMan, scope);
|
||||
notifier.registerToISNotification(qnameList, new GenericResourceConsumer(scope,functionalityHandler.getFunctionalityResourceId()), this, scope);
|
||||
|
||||
logger.debug("consumers registered");
|
||||
}
|
||||
|
|
|
@ -21,14 +21,15 @@ import org.gcube.common.core.scope.GCUBEScope;
|
|||
import org.gcube.common.core.utils.handlers.GCUBEServiceClientImpl;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.common.resources.kxml.KGCUBEResource;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.AddResourcesParameters;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.OptionsParameters;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.ResourceItem;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.ResourceList;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.ScopeOption;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.ServiceItem;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.ServiceList;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.VREManagerPortType;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.AddResourcesParameters;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.CreateScopeParameters;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.OptionsParameters;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ResourceItem;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ResourceList;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ResourceManagerPortType;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ScopeOption;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ServiceItem;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ServiceList;
|
||||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ModelerContext;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ModelerResource;
|
||||
|
@ -38,6 +39,7 @@ import org.gcube.vremanagement.vremodeler.impl.util.VREManagerServiceHandler;
|
|||
import org.gcube.vremanagement.vremodeler.portallayout.CollectionResourceCreation;
|
||||
import org.gcube.vremanagement.vremodeler.portallayout.GenericResourcePortlet;
|
||||
import org.gcube.vremanagement.vremodeler.portallayout.LayoutCreation;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VREState;
|
||||
import org.globus.wsrf.ResourceException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
@ -76,7 +78,7 @@ public class DeployVRE extends Thread{
|
|||
|
||||
}
|
||||
if (GHNList.size()<2){
|
||||
throw new Exception("No ghn Selected (at least 2 GHNs have to be selcted)");
|
||||
throw new Exception("No ghn Selected (at least 2 GHNs have to be selected)");
|
||||
}
|
||||
|
||||
|
||||
|
@ -86,7 +88,7 @@ public class DeployVRE extends Thread{
|
|||
for (Couple<String, String> cpl: GHNList) ghnEpuredList.add(cpl.first);
|
||||
|
||||
if (!createVRE(ghnEpuredList)){
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+ModelerService.DEPLOYED+"' WHERE VRE.id='"+this.resourceId+"';");
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+VREState.DEPLOYED+"' WHERE VRE.id='"+this.resourceId+"';");
|
||||
logger.info("Deploying of the VRE with id "+this.resourceId+" FINISHED");
|
||||
}
|
||||
else{
|
||||
|
@ -94,7 +96,7 @@ public class DeployVRE extends Thread{
|
|||
throw new Exception("Error Deployng the VRE failed on second step");
|
||||
}
|
||||
}else{
|
||||
getResource().setSecondReport("FAILED");
|
||||
getResource().setSecondReport(VREState.FAILED.getValue());
|
||||
getResource().store();
|
||||
logger.info("Deploying of the VRE with id "+this.resourceId+" FAILED on first step");
|
||||
throw new Exception("Error Deployng the VRE filed on first step");
|
||||
|
@ -102,7 +104,7 @@ public class DeployVRE extends Thread{
|
|||
|
||||
}catch(Exception e){
|
||||
try {
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+ModelerService.FAILED+"' WHERE VRE.id='"+this.resourceId+"';");
|
||||
DBInterface.ExecuteUpdate("UPDATE VRE SET STATUS='"+VREState.FAILED+"' WHERE VRE.id='"+this.resourceId+"';");
|
||||
} catch (Exception e1) {
|
||||
logger.error("impossible to update the VRE Status"+e1);
|
||||
}
|
||||
|
@ -130,7 +132,7 @@ public class DeployVRE extends Thread{
|
|||
|
||||
@SuppressWarnings({ "static-access", "unchecked" })
|
||||
@Override
|
||||
protected Boolean makeCall(VREManagerPortType vreManagerPT)
|
||||
protected Boolean makeCall(ResourceManagerPortType resourceManagerPT)
|
||||
throws Exception {
|
||||
String report;
|
||||
try{
|
||||
|
@ -165,12 +167,12 @@ public class DeployVRE extends Thread{
|
|||
|
||||
arp.setServices(services);
|
||||
arp.setTargetScope(this.scope+"/"+vreName);
|
||||
String reportId=vreManagerPT.addResources(arp);
|
||||
String reportId=resourceManagerPT.addResources(arp);
|
||||
|
||||
int attempt=0;
|
||||
do{
|
||||
Thread.currentThread().sleep(20000);
|
||||
report=vreManagerPT.getReport(reportId);
|
||||
report=resourceManagerPT.getReport(reportId);
|
||||
attempt++;
|
||||
getResource().setFirstReport(report);
|
||||
getResource().store();
|
||||
|
@ -210,15 +212,14 @@ public class DeployVRE extends Thread{
|
|||
//the parameter is resourceID
|
||||
@SuppressWarnings("static-access")
|
||||
@Override
|
||||
protected Boolean makeCall(VREManagerPortType vreManPortType)
|
||||
protected Boolean makeCall(ResourceManagerPortType rmPortType)
|
||||
throws Exception {
|
||||
|
||||
OptionsParameters ops;
|
||||
|
||||
ResultSet resGenericInfo = DBInterface.queryDB("select VRE.name, VRE.vredesigner, VRE.vremanager, VRE.IntervalTo, VRE.IntervalFrom, VRE.description from VRE where VRE.id='"+this.getParameter().second+"'; ");
|
||||
if (!resGenericInfo.next()) throw new GCUBEFault("The VRE with ID "+this.getParameter().second+" cannot be retrieved");
|
||||
|
||||
ops=new OptionsParameters();
|
||||
CreateScopeParameters scopeParameter=new CreateScopeParameters();
|
||||
OptionsParameters optPar= new OptionsParameters();
|
||||
ScopeOption[] scopeOptionList= new ScopeOption[6];
|
||||
ScopeOption soDesigner= new ScopeOption();
|
||||
soDesigner.setName("DESIGNER");
|
||||
|
@ -250,8 +251,9 @@ public class DeployVRE extends Thread{
|
|||
soDisplayname.setValue(resGenericInfo.getString("name"));
|
||||
scopeOptionList[5]= soDisplayname;
|
||||
|
||||
ops.setScopeOptionList(scopeOptionList);
|
||||
vreManPortType.setScopeOptions(ops);
|
||||
optPar.setScopeOptionList(scopeOptionList);
|
||||
|
||||
scopeParameter.setOptionsParameters(optPar);
|
||||
|
||||
//creating the GenericResources for Portlets and Collection
|
||||
GenericResourcePortlet.createResource(getResource().getId(), vreName);
|
||||
|
@ -348,17 +350,15 @@ public class DeployVRE extends Thread{
|
|||
|
||||
arp.setServices(serviceList);
|
||||
|
||||
|
||||
for (String ghn: this.getParameter().first){
|
||||
logger.debug(ghn);
|
||||
}
|
||||
scopeParameter.setAddResourcesParameters(arp);
|
||||
scopeParameter.setName(this.scope+"/"+vreName);
|
||||
String report= "ok";
|
||||
String reportId=vreManPortType.addResources(arp);
|
||||
String reportId=rmPortType.createScope(scopeParameter);
|
||||
|
||||
int attempt=0;
|
||||
do{
|
||||
Thread.currentThread().sleep(20000);
|
||||
report=vreManPortType.getReport(reportId);
|
||||
report=rmPortType.getReport(reportId);
|
||||
attempt++;
|
||||
getResource().setSecondReport(report);
|
||||
getResource().store();
|
||||
|
|
|
@ -1,68 +0,0 @@
|
|||
package org.gcube.vremanagement.vremodeler.impl.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.axis.message.addressing.EndpointReferenceType;
|
||||
import org.gcube.common.core.contexts.GCUBERemotePortTypeContext;
|
||||
import org.gcube.common.core.contexts.GHNContext;
|
||||
import org.gcube.common.core.informationsystem.client.AtomicCondition;
|
||||
import org.gcube.common.core.informationsystem.client.ISClient;
|
||||
import org.gcube.common.core.informationsystem.client.queries.GCUBERIQuery;
|
||||
import org.gcube.common.core.resources.GCUBERunningInstance;
|
||||
import org.gcube.common.core.utils.handlers.GCUBEServiceClient;
|
||||
import org.gcube.common.core.utils.handlers.GCUBEServiceHandler;
|
||||
//import org.gcube.metadatamanagement.metadatabroker.stubs.MetadataBrokerPortType;
|
||||
//import org.gcube.metadatamanagement.metadatabroker.stubs.service.MetadataBrokerServiceAddressingLocator;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
|
||||
public abstract class MBrokerServiceHandler<T, P> extends GCUBEServiceHandler<GCUBEServiceClient> {
|
||||
|
||||
private T returnValue;
|
||||
|
||||
private P parameter;
|
||||
|
||||
public T getReturnValue(){
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
public void setParameter(P param){
|
||||
this.parameter= param;
|
||||
}
|
||||
|
||||
protected P getParameter(){
|
||||
return this.parameter;
|
||||
}
|
||||
|
||||
|
||||
protected void setReturnValue(T returnValue){
|
||||
this.returnValue= returnValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<EndpointReferenceType> findInstances() throws Exception {
|
||||
ISClient client = GHNContext.getImplementation(ISClient.class);
|
||||
GCUBERIQuery query = client.getQuery(GCUBERIQuery.class);
|
||||
query.addAtomicConditions(new AtomicCondition("//ServiceName","MetadataBroker"));
|
||||
List<EndpointReferenceType> eprs = new ArrayList<EndpointReferenceType>();
|
||||
for (GCUBERunningInstance instance : client.execute(query, ServiceContext.getContext().getScope()))
|
||||
eprs.add(instance.getAccessPoint().getEndpoint("gcube/metadatamanagement/MetadataBroker"));
|
||||
return eprs;
|
||||
|
||||
}
|
||||
|
||||
//protected abstract T makeCall(MetadataBrokerPortType mbportType) throws Exception;
|
||||
|
||||
|
||||
|
||||
protected void interact(EndpointReferenceType arg0) throws Exception{
|
||||
/*MetadataBrokerPortType mbpt= null;
|
||||
try{
|
||||
MetadataBrokerServiceAddressingLocator mbsal= new MetadataBrokerServiceAddressingLocator();
|
||||
mbpt= mbsal.getMetadataBrokerPortTypePort(arg0);
|
||||
mbpt = GCUBERemotePortTypeContext.getProxy(mbpt,ServiceContext.getContext().getScope());
|
||||
this.setReturnValue(this.makeCall(mbpt));
|
||||
}catch(Exception e){throw e;}
|
||||
*/
|
||||
}
|
||||
}
|
|
@ -0,0 +1,349 @@
|
|||
package org.gcube.vremanagement.vremodeler.impl.util;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collection;
|
||||
import java.util.Hashtable;
|
||||
import java.util.List;
|
||||
|
||||
import javax.xml.transform.OutputKeys;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ModelerService;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
import org.gcube.vremanagement.vremodeler.resources.MetadataFormat;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CollectionType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.CollectionTypeInfo;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityItem;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNTypeMemory;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.GHNTypeSite;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.MetadataFormatCollectionRelation;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.MetadataFormatItem;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.MetadataFormatRelation;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.MetadataFormatResponse;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.Report;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.RunningInstance;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VREDescription;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Lucio Lelii
|
||||
*
|
||||
*/
|
||||
public class Util {
|
||||
|
||||
|
||||
private static final GCUBELog logger = new GCUBELog(ModelerService.class.getName());
|
||||
|
||||
/**
|
||||
* it creates the XML output for VDLGenerator
|
||||
*
|
||||
* @param res the result set of the query on database
|
||||
* @return String the XML
|
||||
*/
|
||||
public static List<CollectionType> prepareCollections(ResultSet res, ArrayList<String> relatedCollection){
|
||||
|
||||
List<CollectionType> collectionList= new ArrayList<CollectionType>();
|
||||
try{
|
||||
while (res.next()){
|
||||
CollectionType collection= new CollectionType();
|
||||
collection.setId(res.getString(1));
|
||||
collection.setName(res.getString(2));
|
||||
Calendar creationTime = Calendar.getInstance();
|
||||
creationTime.setTimeInMillis(Long.parseLong(res.getString(5)));
|
||||
Calendar lastUpdateTime = Calendar.getInstance();
|
||||
lastUpdateTime.setTimeInMillis(Long.parseLong(res.getString(6)));
|
||||
collection.setInfo(new CollectionTypeInfo(creationTime, res.getString(3),lastUpdateTime, Integer.parseInt(res.getString(4))));
|
||||
collection.setSelected(relatedCollection.contains(res.getString(1)));
|
||||
collectionList.add(collection);
|
||||
}
|
||||
}catch(SQLException e){
|
||||
logger.error("database error "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return collectionList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @param relatedGHNs
|
||||
* @param candidateGHN
|
||||
* @return
|
||||
*/
|
||||
public static List<GHNType> prepareGHNs(ResultSet res, ArrayList<String> relatedGHNs, String candidateGHN){
|
||||
List<GHNType> ghnTypeList= new ArrayList<GHNType>();
|
||||
try{
|
||||
ResultSet riRes;
|
||||
while (res.next()){
|
||||
riRes= DBInterface.queryDB("select RI.id, RI.name, RI.class from RUNNINGINSTANCE as RI, GHNRELATEDRI as REL where REL.GHNID='"+res.getString("ID")+"' and REL.RIID=RI.ID");
|
||||
|
||||
int risNum=0;
|
||||
List<RunningInstance> riList= new ArrayList<RunningInstance>();
|
||||
while (riRes.next()){
|
||||
if (!ServiceContext.getContext().getBaseServiceForGhn().contains(new ServicePair(riRes.getString(2),riRes.getString(3))))
|
||||
risNum++;
|
||||
riList.add(new RunningInstance(riRes.getString(3),riRes.getString(2)));
|
||||
}
|
||||
GHNType ghn= new GHNType();
|
||||
ghn.setId(res.getString(1));
|
||||
ghn.setSelectable(!(risNum>0));
|
||||
ghn.setVreManagerUse(candidateGHN.compareTo(res.getString("ID"))==0);
|
||||
ghn.setHost(res.getString(2));
|
||||
ghn.setSecurity(res.getString(3));
|
||||
ghn.setUpTime(res.getString(4));
|
||||
ghn.setMemory(new GHNTypeMemory(res.getString(7),res.getString(5),res.getString(6)));
|
||||
ghn.setSite(new GHNTypeSite(res.getString(9),res.getString(10),res.getString(8)));
|
||||
ghn.setRelatedRIs(riList.toArray(new RunningInstance[riList.size()]));
|
||||
ghnTypeList.add(ghn);
|
||||
}
|
||||
}catch(SQLException e){
|
||||
logger.error("exception reised getting data from database",e);
|
||||
}
|
||||
return ghnTypeList;
|
||||
}
|
||||
|
||||
private static <T> List<T> getDistinctObjects(Collection<T> list){
|
||||
List<T> tmpList= new ArrayList<T>();
|
||||
for (T el: list)
|
||||
if (!tmpList.contains(el)) tmpList.add(el);
|
||||
return tmpList;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @return
|
||||
*/
|
||||
public static MetadataFormatResponse prepareMCFormat(Hashtable<ModelerCollection, List<MetadataFormat>> nativeMetadataFormat, Hashtable<ModelerCollection, List<MetadataFormat>> selectedMetadataFormat){
|
||||
|
||||
List<MetadataFormat> mdflistMultiple= new ArrayList<MetadataFormat>();
|
||||
for (List<MetadataFormat> mftmpList: nativeMetadataFormat.values())
|
||||
mdflistMultiple.addAll(mftmpList);
|
||||
List<MetadataFormat> totalMDF= getDistinctObjects(mdflistMultiple);
|
||||
|
||||
List<MetadataFormatItem> metadataFormatItemList= new ArrayList<MetadataFormatItem>();
|
||||
List<MetadataFormatCollectionRelation> metadataFormatRelationList= new ArrayList<MetadataFormatCollectionRelation>();
|
||||
|
||||
try{
|
||||
|
||||
for (MetadataFormat mf: totalMDF)
|
||||
metadataFormatItemList.add(new MetadataFormatItem( mf.getId(),mf.getLanguage(),mf.getName(),mf.getSchemaURI().toString()));
|
||||
|
||||
//setting the native MDF
|
||||
for(ModelerCollection key: nativeMetadataFormat.keySet()){
|
||||
MetadataFormatCollectionRelation mfCollectionRelation= new MetadataFormatCollectionRelation();
|
||||
mfCollectionRelation.setCollId(key.getId());
|
||||
mfCollectionRelation.setDescription(key.getDescription());
|
||||
mfCollectionRelation.setName(key.getName());
|
||||
|
||||
List<MetadataFormatRelation> mfList= new ArrayList<MetadataFormatRelation>();
|
||||
for(MetadataFormat mf: nativeMetadataFormat.get(key))
|
||||
if(selectedMetadataFormat.isEmpty() || ((selectedMetadataFormat.get(key)!=null) && selectedMetadataFormat.get(key).contains(mf)))
|
||||
mfList.add(new MetadataFormatRelation(mf.getId(),true, true));
|
||||
else mfList.add(new MetadataFormatRelation(mf.getId(),true, false));
|
||||
|
||||
mfCollectionRelation.setMfList(mfList.toArray(new MetadataFormatRelation[mfList.size()]));
|
||||
metadataFormatRelationList.add(mfCollectionRelation);
|
||||
}
|
||||
}catch(Exception e){
|
||||
logger.warn("error getting metadataFormats",e);
|
||||
}
|
||||
return new MetadataFormatResponse(metadataFormatRelationList.toArray(new MetadataFormatCollectionRelation[metadataFormatRelationList.size()]),metadataFormatItemList.toArray(new MetadataFormatItem[metadataFormatItemList.size()]));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the XML representing the quality string
|
||||
*/
|
||||
public static String prepareQualityXML(){
|
||||
StringBuilder qualityString=new StringBuilder();
|
||||
qualityString.append("<ResultSet>");
|
||||
qualityString.append("<Quality><DisplayName>Response Time</DisplayName><Description>This quality parameter indicates the importance of response time (i.e., the delay from a function request to the reception of the response) ");
|
||||
qualityString.append("in selecting the resource (both in number and type) needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% response time will result in a maximization of the resources ");
|
||||
qualityString.append("allocated as to minimise the response time. </Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Robustness</DisplayName><Description>This quality parameter indicates the importance of robustness (i.e., the resilience to faults) in selecting the resource (both in number and type)");
|
||||
qualityString.append(" needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% robustness will result in a maximisation of the resources allocated as to minimise service unavailability.</Description><Multiple ");
|
||||
qualityString.append(" value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Scalability</DisplayName><Description>This quality parameter indicates the importance of scalability (i.e., the capability to increase Digital Library Capacity as much as needed) in selecting the resource ");
|
||||
qualityString.append("(both in number and type) needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% scalability will result in a maximisztion of the resources allocated as to minimise the response time.</Description>");
|
||||
qualityString.append("<Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Re-use</DisplayName><Description>This quality parameter indicates the willingness to re-use existing resources (running instances, indexes, etc.) across various Digital Libraries. The specified ");
|
||||
qualityString.append("percentage represents the degree of re-use of existing assets in concretely implementing the Digital Library.</Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Capacity</DisplayName><Description>This quality parameter indicates the importance of capacity (i.e., the amount of resources allocated to the Digital Library) in selecting the resource (both in number and type) ");
|
||||
qualityString.append("needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% capacity will result in a maximization of the amount of resources allocated to the Digital Library.");
|
||||
qualityString.append(" </Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Security</DisplayName><Description>A true/false quality parameter indicates whether the operations have to be executed in a fully authorised and authenticated environment (true value) or ");
|
||||
qualityString.append("not (false value)</Description><Multiple value=\"false\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">Yes</Value><Value default=\"false\" selected=\"false\">No</Value></AllowedValues></Quality>");
|
||||
qualityString.append("</ResultSet>");
|
||||
return qualityString.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @param selectedFunct
|
||||
* @param selectedCS
|
||||
* @return
|
||||
*/
|
||||
public static List<FunctionalityItem> prepareFunctionalities(ResultSet res, ArrayList<Integer> selectedFunct, ArrayList<String> selectedCS){
|
||||
|
||||
List<FunctionalityItem> functionalityItemList= new ArrayList<FunctionalityItem>();
|
||||
try {
|
||||
while(res.next()){
|
||||
FunctionalityItem functionlityItem= new FunctionalityItem();
|
||||
functionlityItem.setId(res.getInt(1));
|
||||
functionlityItem.setName(res.getString(2));
|
||||
functionlityItem.setSelected(selectedFunct.contains(res.getInt(1)));
|
||||
functionlityItem.setDescription(res.getString(3));
|
||||
|
||||
List<FunctionalityItem> subFunctionalities= new ArrayList<FunctionalityItem>();
|
||||
|
||||
ResultSet subFunctRes=DBInterface.queryDB("select * from FUNCTIONALITY where father='"+res.getInt(1)+"';");
|
||||
while(subFunctRes.next()){
|
||||
FunctionalityItem subFunctionalityItem= new FunctionalityItem();
|
||||
subFunctionalityItem.setId(subFunctRes.getInt(1));
|
||||
subFunctionalityItem.setName(subFunctRes.getString(2));
|
||||
subFunctionalityItem.setDescription(subFunctRes.getString(3));
|
||||
subFunctionalityItem.setSelected(selectedFunct.contains(subFunctRes.getInt(1)));
|
||||
subFunctionalities.add(subFunctionalityItem);
|
||||
}
|
||||
functionlityItem.setChilds(subFunctionalities.toArray(new FunctionalityItem[subFunctionalities.size()]));
|
||||
functionalityItemList.add(functionlityItem);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
logger.error("DB error preparing Functionalities",e);
|
||||
|
||||
}
|
||||
|
||||
return functionalityItemList;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @return a String representing the message
|
||||
* @throws Exception
|
||||
*/
|
||||
public static VREDescription prepareVREDescription(ResultSet res) throws Exception{
|
||||
VREDescription vreDescription= new VREDescription();
|
||||
|
||||
if (res.next()){
|
||||
vreDescription.setName(res.getString(2));
|
||||
vreDescription.setDescription(res.getString(3));
|
||||
vreDescription.setDesigner(res.getString(4));
|
||||
vreDescription.setManager(res.getString(5));
|
||||
Calendar calendarStart= Calendar.getInstance();
|
||||
calendarStart.setTime(res.getDate(6));
|
||||
vreDescription.setStartTime(calendarStart);
|
||||
Calendar calendarEnd= Calendar.getInstance();
|
||||
calendarEnd.setTime(res.getDate(7));
|
||||
vreDescription.setEndTime(calendarEnd);
|
||||
}else{
|
||||
Calendar calendarStart= Calendar.getInstance();
|
||||
Calendar calendarEnd= Calendar.getInstance();
|
||||
calendarEnd.add(Calendar.YEAR, 1);
|
||||
vreDescription.setName(null);
|
||||
vreDescription.setDescription(null);
|
||||
vreDescription.setDesigner(null);
|
||||
vreDescription.setManager(null);
|
||||
vreDescription.setStartTime(calendarStart);
|
||||
vreDescription.setEndTime(calendarEnd);
|
||||
}
|
||||
return vreDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static List<Report> prepareVREsList(ResultSet res) throws Exception{
|
||||
List<Report> reportList= new ArrayList<Report>();
|
||||
while (res.next()){
|
||||
Report reportItem= new Report();
|
||||
reportItem.setId(res.getString(4));
|
||||
reportItem.setDescription(res.getString(2));
|
||||
reportItem.setName(res.getString(1));
|
||||
reportItem.setState(res.getString(3));
|
||||
reportList.add(reportItem);
|
||||
}
|
||||
return reportList;
|
||||
}
|
||||
|
||||
/**
|
||||
* transform a Document into string
|
||||
*
|
||||
* @param doc Document
|
||||
* @return a String
|
||||
*/
|
||||
public static String docToString(Document doc){
|
||||
|
||||
String temp= null;
|
||||
try{
|
||||
DOMSource domSource = new DOMSource(doc);
|
||||
|
||||
TransformerFactory tf = TransformerFactory.newInstance();
|
||||
Transformer serializer = tf.newTransformer();
|
||||
serializer.setOutputProperty("encoding", "UTF-8");
|
||||
serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes" );
|
||||
StringWriter sw= new StringWriter();
|
||||
StreamResult sr= new StreamResult(sw);
|
||||
serializer.transform(domSource, sr);
|
||||
temp=sr.getWriter().toString();
|
||||
}catch(Exception e){
|
||||
logger.error("transformation to String Error");
|
||||
e.printStackTrace();
|
||||
}
|
||||
return temp;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param doc the root Document
|
||||
* @param root the element tag name
|
||||
* @param elements elements to add
|
||||
* @return the result element
|
||||
*/
|
||||
public static Element addElements(Document doc, String root, Element[] elements){
|
||||
Element returnEl= doc.createElement(root);
|
||||
for (Element el: elements){
|
||||
returnEl.appendChild(el);
|
||||
}
|
||||
return returnEl;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param doc the root Document
|
||||
* @param Tag the element tag name
|
||||
* @param text the text to add at the element
|
||||
* @return the result element
|
||||
*/
|
||||
public static Element createTextElement(Document doc, String tag, String text, Couple<String, String> ... attributes ){
|
||||
Element returnEl= doc.createElement(tag);
|
||||
if (attributes!=null){
|
||||
for (Couple<String, String> attribute : attributes){
|
||||
returnEl.setAttribute(attribute.first, attribute.second);
|
||||
}
|
||||
}
|
||||
if (text!=null) returnEl.appendChild(doc.createTextNode(text));
|
||||
return returnEl;
|
||||
}
|
||||
|
||||
}
|
|
@ -12,8 +12,8 @@ import org.gcube.common.core.resources.GCUBERunningInstance;
|
|||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.common.core.utils.handlers.GCUBEServiceClient;
|
||||
import org.gcube.common.core.utils.handlers.GCUBEServiceHandler;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.VREManagerPortType;
|
||||
import org.gcube.vremanagement.vremanager.stubs.vremanager.service.VREManagerServiceAddressingLocator;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.ResourceManagerPortType;
|
||||
import org.gcube.vremanagement.resourcemanager.stubs.resourcemanager.service.ResourceManagerServiceAddressingLocator;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
|
||||
public abstract class VREManagerServiceHandler<T, P> extends GCUBEServiceHandler<GCUBEServiceClient> {
|
||||
|
@ -64,18 +64,18 @@ public abstract class VREManagerServiceHandler<T, P> extends GCUBEServiceHandler
|
|||
}catch(Exception e){logger.error(e); throw e;}
|
||||
}
|
||||
|
||||
protected abstract T makeCall(VREManagerPortType mbportType) throws Exception;
|
||||
protected abstract T makeCall(ResourceManagerPortType rmPortType) throws Exception;
|
||||
|
||||
|
||||
protected void interact(EndpointReferenceType epr) throws Exception{
|
||||
VREManagerPortType vmpt= null;
|
||||
ResourceManagerPortType rmpt= null;
|
||||
|
||||
try{
|
||||
VREManagerServiceAddressingLocator vmsal= new VREManagerServiceAddressingLocator();
|
||||
vmpt= vmsal.getVREManagerPortTypePort(epr);
|
||||
vmpt = GCUBERemotePortTypeContext.getProxy(vmpt,scope, Integer.parseInt((String)ServiceContext.getContext().getProperty("vremanagerTimeout", true)));
|
||||
ResourceManagerServiceAddressingLocator vmsal= new ResourceManagerServiceAddressingLocator();
|
||||
rmpt= vmsal.getResourceManagerPortTypePort(epr);
|
||||
rmpt = GCUBERemotePortTypeContext.getProxy(rmpt,scope, Integer.parseInt((String)ServiceContext.getContext().getProperty("resourceManagerTimeout", true)));
|
||||
this.usedhost= epr.getAddress().getHost();
|
||||
this.setReturnValue(this.makeCall(vmpt));
|
||||
this.setReturnValue(this.makeCall(rmpt));
|
||||
}catch(Exception e){e.printStackTrace();throw e; }
|
||||
}
|
||||
|
||||
|
|
|
@ -1,486 +0,0 @@
|
|||
package org.gcube.vremanagement.vremodeler.impl.util;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.Hashtable;
|
||||
import java.util.List;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.transform.OutputKeys;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import org.gcube.common.core.utils.logging.GCUBELog;
|
||||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ModelerService;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
import org.gcube.vremanagement.vremodeler.resources.MetadataFormat;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Lucio Lelii
|
||||
*
|
||||
*/
|
||||
public class XMLUtil {
|
||||
|
||||
|
||||
private static final GCUBELog logger = new GCUBELog(ModelerService.class.getName());
|
||||
|
||||
/**
|
||||
* it creates the XML output for VDLGenerator
|
||||
*
|
||||
* @param res the result set of the query on database
|
||||
* @return String the XML
|
||||
*/
|
||||
public static String PrepareCollectionXML(ResultSet res, ArrayList<String> relatedCollection){
|
||||
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
|
||||
Element root= doc.createElement("ResultSet");
|
||||
SimpleDateFormat simpleDateFormat= new SimpleDateFormat("dd-MM-yyyy 'at' HH:mm z");
|
||||
try{
|
||||
while (res.next()){
|
||||
Element collection = addElements(doc, "Collection",
|
||||
new Element[]{createTextElement(doc, "ID", res.getString(1)),
|
||||
createTextElement(doc, "Name", res.getString(2)),
|
||||
addElements(doc, "Info",
|
||||
new Element[]{
|
||||
createTextElement(doc, "Description",res.getString(3)),
|
||||
createTextElement(doc, "NumberOfMembers",res.getString(4)),
|
||||
createTextElement(doc, "CreationTime",simpleDateFormat.format(new Date(Long.parseLong(res.getString(5))))),
|
||||
createTextElement(doc, "LastUpdateTime",simpleDateFormat.format(new Date(Long.parseLong(res.getString(6)))))
|
||||
}),
|
||||
createTextElement(doc, "Selected",relatedCollection.contains(res.getString(1)) ? "true" : "false") });
|
||||
root.appendChild(collection);
|
||||
}
|
||||
}catch(SQLException e){
|
||||
logger.error("database error "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
doc.appendChild(root);
|
||||
//logger.debug("VDLMODEL: request collection XML: "+temp);
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static String PrepareGHNsXML(ResultSet res, ArrayList<String> relatedGHNs, String candidateGHN){
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
Element root= doc.createElement("ResultSet");
|
||||
|
||||
ResultSet riRes;
|
||||
|
||||
try{
|
||||
while (res.next()){
|
||||
riRes= DBInterface.queryDB("select RI.id, RI.name, RI.class from RUNNINGINSTANCE as RI, GHNRELATEDRI as REL where REL.GHNID='"+res.getString("ID")+"' and REL.RIID=RI.ID");
|
||||
Element risElement=doc.createElement("RunningInstances");
|
||||
int risNum=0;
|
||||
while (riRes.next()){
|
||||
if (!ServiceContext.getContext().getBaseServiceForGhn().contains(new ServicePair(riRes.getString(2),riRes.getString(3))))
|
||||
risNum++;
|
||||
Element riElement=addElements(doc, "RunningInstance", new Element[]{
|
||||
createTextElement(doc, "Name",riRes.getString(2)),
|
||||
createTextElement(doc, "Class",riRes.getString(3))
|
||||
});
|
||||
risElement.appendChild(riElement);
|
||||
}
|
||||
|
||||
Element ghnEl = addElements(doc, "GHN", new Element[]{
|
||||
createTextElement(doc, "ID",res.getString(1),new Couple<String, String>("selectable", risNum>0?"false":"true"),new Couple<String, String>("VREManagerUse",(candidateGHN.compareTo(res.getString("ID"))==0?"true":"false"))),
|
||||
createTextElement(doc, "Host",res.getString(2)),
|
||||
addElements(doc, "Info", new Element[]{
|
||||
risElement,
|
||||
createTextElement(doc, "Security", res.getString(3)),
|
||||
createTextElement(doc, "UpTime", res.getString(4)),
|
||||
addElements(doc, "Memory", new Element[]{
|
||||
createTextElement(doc, "VirtualAvailable", res.getString(5)),
|
||||
createTextElement(doc, "VirtualSize", res.getString(6)),
|
||||
createTextElement(doc, "LocalAvailableSpace", res.getString(7))}),
|
||||
addElements(doc, "Site", new Element[]{
|
||||
createTextElement(doc, "Location", res.getString(8)),
|
||||
createTextElement(doc, "Country", res.getString(9)),
|
||||
createTextElement(doc, "Domain", res.getString(10))}),
|
||||
createTextElement(doc, "Libraries", null)}),
|
||||
createTextElement(doc, "Selected", relatedGHNs.contains(res.getString("ID")) ? "true" : "false")
|
||||
});
|
||||
|
||||
root.appendChild(ghnEl);
|
||||
}
|
||||
}catch(SQLException e){
|
||||
logger.error("database error "+e.getMessage());
|
||||
}
|
||||
|
||||
doc.appendChild(root);
|
||||
//logger.debug("VDLMODEL: request collection XML: "+temp);
|
||||
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
private static <T> List<T> getDistinctObjects(Collection<T> list){
|
||||
List<T> tmpList= new ArrayList<T>();
|
||||
for (T el: list)
|
||||
if (!tmpList.contains(el)) tmpList.add(el);
|
||||
return tmpList;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @return
|
||||
*/
|
||||
public static String PrepareMCFormatXML(Hashtable<ModelerCollection, List<MetadataFormat>> nativeMetadataFormat, Hashtable<ModelerCollection, List<MetadataFormat>> selectedMetadataFormat){
|
||||
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
//Hashtable<String, Couple<Element, ArrayList<Element>>> MDFHash= new Hashtable<String, Couple<Element, ArrayList<Element>>>();
|
||||
List<MetadataFormat> mdflistMultiple= new ArrayList<MetadataFormat>();
|
||||
for (List<MetadataFormat> mftmpList: nativeMetadataFormat.values())
|
||||
mdflistMultiple.addAll(mftmpList);
|
||||
List<MetadataFormat> totalMDF= getDistinctObjects(mdflistMultiple);
|
||||
|
||||
|
||||
Element collectionListEl= doc.createElement("CollectionList");
|
||||
Element mflEl= doc.createElement("MFL");
|
||||
|
||||
try{
|
||||
for (MetadataFormat mf: totalMDF)
|
||||
{
|
||||
|
||||
Element elementEl=addElements(doc, "Element", new Element[]{
|
||||
createTextElement(doc, "MFID", mf.getId()),
|
||||
createTextElement(doc, "MFName", mf.getName()),
|
||||
createTextElement(doc, "URI", mf.getSchemaURI().toString()),
|
||||
createTextElement(doc, "Language", mf.getLanguage())
|
||||
});
|
||||
mflEl.appendChild(elementEl);
|
||||
}
|
||||
|
||||
//setting the native MDF
|
||||
for(ModelerCollection key: nativeMetadataFormat.keySet()){
|
||||
Element collectionEl= addElements(doc, "Collection", new Element[]{
|
||||
createTextElement(doc,"CollectionID" , key.getId()),
|
||||
createTextElement(doc,"Name" , key.getName()),
|
||||
createTextElement(doc,"Description" , key.getDescription())
|
||||
});
|
||||
|
||||
|
||||
for(MetadataFormat mf: nativeMetadataFormat.get(key)){
|
||||
Element tmpEl;
|
||||
if(selectedMetadataFormat.isEmpty() || ((selectedMetadataFormat.get(key)!=null) && selectedMetadataFormat.get(key).contains(mf))){
|
||||
tmpEl= addElements(doc, "MetadataFormat", new Element[]{
|
||||
createTextElement(doc, "Id", mf.getId()),
|
||||
createTextElement(doc, "Selectable", "True"),
|
||||
createTextElement(doc, "Selected", "True"),
|
||||
});
|
||||
}else {
|
||||
tmpEl= addElements(doc, "MetadataFormat", new Element[]{
|
||||
createTextElement(doc, "Id", mf.getId()),
|
||||
createTextElement(doc, "Selectable", "True"),
|
||||
createTextElement(doc, "Selected", "False"),
|
||||
});
|
||||
}
|
||||
collectionEl.appendChild(tmpEl);
|
||||
}
|
||||
collectionListEl.appendChild(collectionEl);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//setting the derivable MDF
|
||||
/* TODO: when metadataBroker will be ready for transformations
|
||||
* while(resDerivable.next()){
|
||||
Element tmpKeyEl= addElements(doc, "Collection", new Element[]{
|
||||
createTextElement(doc,"CollectionID" , resDerivable.getString(1)),
|
||||
createTextElement(doc,"Name" , resDerivable.getString(2)),
|
||||
createTextElement(doc,"Description" , resDerivable.getString(3))
|
||||
});
|
||||
|
||||
Element tmpEl;
|
||||
if(selectedMetadata.isEmpty() || !(selectedMetadata.containsKey(resDerivable.getString(1))) && (selectedMetadata.get(resDerivable.getString(1)).contains(resDerivable.getString(4))))
|
||||
tmpEl= addElements(doc, "MetadataFormat", new Element[]{
|
||||
createTextElement(doc, "Id", resDerivable.getString(4)),
|
||||
createTextElement(doc, "Selectable", "True"),
|
||||
createTextElement(doc, "Selected", "False"),
|
||||
});
|
||||
else{
|
||||
tmpEl= addElements(doc, "MetadataFormat", new Element[]{
|
||||
createTextElement(doc, "Id", resDerivable.getString(4)),
|
||||
createTextElement(doc, "Selectable", "False"),
|
||||
createTextElement(doc, "Selected", "False"),
|
||||
});
|
||||
}
|
||||
//logger.debug("MDFProva: Derivable "+keyTemp+" "+temp);
|
||||
if(MDFHash.contains(resDerivable.getString(1))) MDFHash.get(resDerivable.getString(1)).second.add(tmpEl);
|
||||
else{
|
||||
tempArray=new ArrayList<Element>();
|
||||
tempArray.add(tmpEl);
|
||||
MDFHash.put(resDerivable.getString(1), new Couple<Element, ArrayList<Element>>(tmpKeyEl, tempArray) );
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
doc.appendChild(addElements(doc, "ResultSet", new Element[]{mflEl, collectionListEl}));
|
||||
//logger.debug("VDLMODEL: request MCFormat XML "+resultString);
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the XML representing the quality string
|
||||
*/
|
||||
public static String PrepareQualityXML(){
|
||||
StringBuilder qualityString=new StringBuilder();
|
||||
qualityString.append("<ResultSet>");
|
||||
qualityString.append("<Quality><DisplayName>Response Time</DisplayName><Description>This quality parameter indicates the importance of response time (i.e., the delay from a function request to the reception of the response) ");
|
||||
qualityString.append("in selecting the resource (both in number and type) needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% response time will result in a maximization of the resources ");
|
||||
qualityString.append("allocated as to minimise the response time. </Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Robustness</DisplayName><Description>This quality parameter indicates the importance of robustness (i.e., the resilience to faults) in selecting the resource (both in number and type)");
|
||||
qualityString.append(" needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% robustness will result in a maximisation of the resources allocated as to minimise service unavailability.</Description><Multiple ");
|
||||
qualityString.append(" value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Scalability</DisplayName><Description>This quality parameter indicates the importance of scalability (i.e., the capability to increase Digital Library Capacity as much as needed) in selecting the resource ");
|
||||
qualityString.append("(both in number and type) needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% scalability will result in a maximisztion of the resources allocated as to minimise the response time.</Description>");
|
||||
qualityString.append("<Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Re-use</DisplayName><Description>This quality parameter indicates the willingness to re-use existing resources (running instances, indexes, etc.) across various Digital Libraries. The specified ");
|
||||
qualityString.append("percentage represents the degree of re-use of existing assets in concretely implementing the Digital Library.</Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Capacity</DisplayName><Description>This quality parameter indicates the importance of capacity (i.e., the amount of resources allocated to the Digital Library) in selecting the resource (both in number and type) ");
|
||||
qualityString.append("needed to satisfy the Digital Library definition criteria. E.g., the specification of a 100% capacity will result in a maximization of the amount of resources allocated to the Digital Library.");
|
||||
qualityString.append(" </Description><Multiple value=\"true\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">*</Value></AllowedValues></Quality>");
|
||||
qualityString.append("<Quality><DisplayName>Security</DisplayName><Description>A true/false quality parameter indicates whether the operations have to be executed in a fully authorised and authenticated environment (true value) or ");
|
||||
qualityString.append("not (false value)</Description><Multiple value=\"false\"/><CanBeEmpty value=\"false\"/><AllowedValues><Value default=\"true\" selected=\"false\">Yes</Value><Value default=\"false\" selected=\"false\">No</Value></AllowedValues></Quality>");
|
||||
qualityString.append("</ResultSet>");
|
||||
return qualityString.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @param selectedFunct
|
||||
* @param selectedCS
|
||||
* @return
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static String PrepareFunctionalityXML(ResultSet res, ArrayList<Integer> selectedFunct, ArrayList<String> selectedCS){
|
||||
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
Element root= doc.createElement("Resultset");
|
||||
|
||||
try {
|
||||
while(res.next()){
|
||||
Element functionalityEl= createTextElement(doc, "Functionality", null, new Couple<String, String>("id", res.getInt(1)+""),
|
||||
new Couple<String, String>("name", res.getString(2)),
|
||||
new Couple<String, String>("enableCS", res.getInt(1)==10 ? "true": "false"),
|
||||
new Couple<String, String>("selected", selectedFunct.contains(res.getInt(1)) ? "true" : "false")
|
||||
);
|
||||
|
||||
functionalityEl.appendChild(createTextElement(doc, "FunctionalityDescription", res.getString(3)));
|
||||
|
||||
ResultSet subFunctRes=DBInterface.queryDB("select * from FUNCTIONALITY where father='"+res.getInt(1)+"';");
|
||||
while(subFunctRes.next()){
|
||||
Element subFunctEl=createTextElement(doc,"Functionality" , null, new Couple<String, String>("id", subFunctRes.getInt(1)+""),
|
||||
new Couple<String, String>("name", subFunctRes.getString(2)),
|
||||
new Couple<String, String>("selected", selectedFunct.contains(subFunctRes.getInt(1)) ? "true" : "false"));
|
||||
|
||||
subFunctEl.appendChild(createTextElement(doc, "FunctionalityDescription", subFunctRes.getString(3)));
|
||||
functionalityEl.appendChild(addElements(doc, "child", new Element[]{subFunctEl}));
|
||||
}
|
||||
root.appendChild(functionalityEl);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
logger.error("VDLModelService: DB error preparing XML for Functionality");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
ResultSet csRes=DBInterface.queryDB("select * from cs;");
|
||||
if (csRes.next()){
|
||||
Element csEl= createTextElement(doc, "CS", null, new Couple<String, String>("id", "-1"), new Couple<String, String>("name", "Workflows"), new Couple<String, String>("selected", "false"));
|
||||
csEl.appendChild(createTextElement(doc,"CSDescription" , "This class of functions contains compound functions defined by aggregating existing functions in structured workflows as to deliver advanced features."));
|
||||
do{
|
||||
Element subCsEl= createTextElement(doc, "CS", null, new Couple<String, String>("id", csRes.getString(1)), new Couple<String, String>("name", csRes.getString(2)), new Couple<String, String>("selected", selectedCS.contains(csRes.getString(1)) ? "true" : "false"));
|
||||
subCsEl.appendChild(createTextElement(doc,"CSDescription" , csRes.getString(3)));
|
||||
csEl.appendChild(addElements(doc, "child", new Element[]{subCsEl}));
|
||||
}while (csRes.next());
|
||||
|
||||
root.appendChild(csEl);
|
||||
}
|
||||
|
||||
|
||||
} catch (SQLException e) {
|
||||
logger.error("VDLModelService: DB error retreiving CS");
|
||||
e.printStackTrace();
|
||||
}
|
||||
doc.appendChild(root);
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param res
|
||||
* @return a String representing the message
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public static String PrepareVREModelXML(ResultSet res) throws Exception{
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
Element root;
|
||||
|
||||
if (res.next()){
|
||||
root= addElements(doc, "Resultset", new Element[]{
|
||||
createTextElement(doc, "Name",res.getString(2)),
|
||||
createTextElement(doc, "Description",res.getString(3)),
|
||||
createTextElement(doc, "VREDesigner",res.getString(4)),
|
||||
createTextElement(doc, "VREManager",res.getString(5)),
|
||||
createTextElement(doc, "StartTime",res.getDate(6).getTime()+""),
|
||||
createTextElement(doc, "EndTime",res.getDate(7).getTime()+""),
|
||||
});
|
||||
|
||||
}else{
|
||||
Date dateFrom=new Date();
|
||||
Date dateTo=new Date();
|
||||
dateTo.setYear(dateTo.getYear()+1);
|
||||
root= addElements(doc, "Resultset", new Element[]{
|
||||
createTextElement(doc, "Name",null),
|
||||
createTextElement(doc, "Description",null),
|
||||
createTextElement(doc, "VREDesigner",null),
|
||||
createTextElement(doc, "VREManager",null),
|
||||
createTextElement(doc, "StartTime",dateFrom.getTime()+""),
|
||||
createTextElement(doc, "EndTime",dateTo.getTime()+"")
|
||||
});
|
||||
}
|
||||
doc.appendChild(root);
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
|
||||
public static String PrepareAllVREsXML(ResultSet res) throws Exception{
|
||||
Document doc= null;
|
||||
try {
|
||||
doc= DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
|
||||
} catch (ParserConfigurationException e1) {
|
||||
logger.error("Error creating XML Message");
|
||||
e1.printStackTrace();
|
||||
}
|
||||
Element root= doc.createElement("ResultSet");
|
||||
Element vreEl;
|
||||
while (res.next()){
|
||||
vreEl= addElements(doc, "VRE", new Element[]{
|
||||
createTextElement(doc, "Name",res.getString(1)),
|
||||
createTextElement(doc, "Description",res.getString(2)),
|
||||
createTextElement(doc, "State",res.getString(3)),
|
||||
createTextElement(doc, "EPR",res.getString(4))
|
||||
});
|
||||
root.appendChild(vreEl);
|
||||
}
|
||||
|
||||
doc.appendChild(root);
|
||||
return docToString(doc);
|
||||
}
|
||||
|
||||
/**
|
||||
* transform a Document into string
|
||||
*
|
||||
* @param doc Document
|
||||
* @return a String
|
||||
*/
|
||||
public static String docToString(Document doc){
|
||||
|
||||
String temp= null;
|
||||
try{
|
||||
DOMSource domSource = new DOMSource(doc);
|
||||
|
||||
TransformerFactory tf = TransformerFactory.newInstance();
|
||||
Transformer serializer = tf.newTransformer();
|
||||
serializer.setOutputProperty("encoding", "UTF-8");
|
||||
serializer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes" );
|
||||
StringWriter sw= new StringWriter();
|
||||
StreamResult sr= new StreamResult(sw);
|
||||
serializer.transform(domSource, sr);
|
||||
temp=sr.getWriter().toString();
|
||||
}catch(Exception e){
|
||||
logger.error("transformation to String Error");
|
||||
e.printStackTrace();
|
||||
}
|
||||
return temp;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param doc the root Document
|
||||
* @param root the element tag name
|
||||
* @param elements elements to add
|
||||
* @return the result element
|
||||
*/
|
||||
public static Element addElements(Document doc, String root, Element[] elements){
|
||||
Element returnEl= doc.createElement(root);
|
||||
for (Element el: elements){
|
||||
returnEl.appendChild(el);
|
||||
}
|
||||
return returnEl;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param doc the root Document
|
||||
* @param Tag the element tag name
|
||||
* @param text the text to add at the element
|
||||
* @return the result element
|
||||
*/
|
||||
public static Element createTextElement(Document doc, String tag, String text, Couple<String, String> ... attributes ){
|
||||
Element returnEl= doc.createElement(tag);
|
||||
if (attributes!=null){
|
||||
for (Couple<String, String> attribute : attributes){
|
||||
returnEl.setAttribute(attribute.first, attribute.second);
|
||||
}
|
||||
}
|
||||
if (text!=null) returnEl.appendChild(doc.createTextNode(text));
|
||||
return returnEl;
|
||||
}
|
||||
|
||||
}
|
|
@ -10,7 +10,7 @@ import org.gcube.common.core.resources.GCUBEGenericResource;
|
|||
import org.gcube.common.core.scope.GCUBEScope;
|
||||
import org.gcube.vremanagement.vremodeler.db.DBInterface;
|
||||
import org.gcube.vremanagement.vremodeler.impl.ServiceContext;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.XMLUtil;
|
||||
import org.gcube.vremanagement.vremodeler.impl.util.Util;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
@ -25,10 +25,10 @@ public class GenericResourcePortlet {
|
|||
ResultSet rs= DBInterface.queryDB("select DISTINCT pf.PORTLETCLASS from PORTLETRELTOFUNCT as pf, VRERELATEDFUNCT as vf where vf.vreid='"+vreId+"' and pf.FUNCID=vf.FUNCID");
|
||||
Element root= doc.createElement("ListPortlets");
|
||||
while(rs.next())
|
||||
root.appendChild(XMLUtil.createTextElement(doc, "Portlet", rs.getString(1)));
|
||||
root.appendChild(Util.createTextElement(doc, "Portlet", rs.getString(1)));
|
||||
|
||||
doc.appendChild(root);
|
||||
resource.setBody(XMLUtil.docToString(doc));
|
||||
resource.setBody(Util.docToString(doc));
|
||||
|
||||
resource.setDescription("List of selectable Portlet for the VRE "+vreName);
|
||||
resource.setName("AvailablePortlets");
|
||||
|
|
|
@ -32,7 +32,7 @@ public class MCollectionHandler implements ResourceHandler<GCUBEMCollection> {
|
|||
}
|
||||
|
||||
public void drop(String resourceId) throws Exception {
|
||||
// TODO Auto-generated method stub
|
||||
DBInterface.deleteElement(tableName, "ID='"+resourceId+"'");
|
||||
}
|
||||
|
||||
public void initialize() throws Exception {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
package org.gcube.vremanagement.vremodeler.stubs;
|
||||
|
||||
public enum VREState {
|
||||
|
||||
DEPLOYED("Deployed"),
|
||||
IN_PROGRESS("In Progress"),
|
||||
FAILED("Failed"),
|
||||
PENDING("Pending"),
|
||||
DEPLOYING("Deploying");
|
||||
|
||||
private String value;
|
||||
|
||||
VREState(String value){
|
||||
this.value= value;
|
||||
}
|
||||
|
||||
public String getValue(){
|
||||
return this.value;
|
||||
}
|
||||
}
|
|
@ -17,7 +17,6 @@ import org.gcube.vremanagement.vremodeler.stubs.FunctionalityIDArray;
|
|||
import org.gcube.vremanagement.vremodeler.stubs.GHNArray;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.ModelerFactoryPortType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.ModelerServicePortType;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.VRERequest;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.service.ModelerFactoryServiceAddressingLocator;
|
||||
import org.gcube.vremanagement.vremodeler.stubs.service.ModelerServiceAddressingLocator;
|
||||
|
||||
|
@ -27,6 +26,7 @@ public class ModelerTest {
|
|||
|
||||
public static void main(String[] args) {
|
||||
try{
|
||||
/*
|
||||
ISClient client = GHNContext.getImplementation(ISClient.class);
|
||||
GCUBERIQuery riquery= client.getQuery(GCUBERIQuery.class);
|
||||
riquery.addAtomicConditions(new AtomicCondition("//ServiceName", "VREModeler"));
|
||||
|
|
Loading…
Reference in New Issue