<?xml version="1.0" encoding="UTF-8"?>
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<ID></ID>
	<Type>Service</Type>
	<Profile>
		<Description>OpenSearch Data Source</Description>
		<Class>OpenSearch</Class>
		<Name>OpenSearchDataSource</Name>
		<Version>1.0.0</Version>
		<Packages>
			<Main>
				<Description>OpenSearch DataSource</Description>
                <Name>OpenSearchDataSourceMain</Name>
                <Version>1.2.0</Version>
                <Mandatory level="VO"/>
                <Shareable level="VO"/>
                <GHNRequirements>
                        <Requirement category="RunTimeEnv" operator="eq" requirement="Variable" value="java1.5" />
                       <Requirement category="OperatingSystem" operator="eq" requirement="Name" value="Linux" />
                </GHNRequirements>
				<Dependencies>
					<Dependency>
						<Service>
							<Class>OpenSearch</Class>
							<Name>OpenSearchDataSource</Name>
			 		   		<Version>1.0.0</Version>
						</Service>
						<Package>OpenSearchDataSourceStubs</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
							<Class>OpenSearch</Class>
							<Name>OpenSearchLibrary</Name>
			 		   		<Version>1.0.0</Version>
						</Service>
						<Package>OpenSearchLibrary</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
							<Class>Search</Class>
							<Name>OperatorLibrary</Name>
			 		   		<Version>1.0.0</Version>
						</Service>
						<Package>OperatorLibrary</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
							<Class>G_CQLParser</Class>
							<Name>G_CQLParser</Name>
			 		   		<Version>1.0.0</Version>
						</Service>
						<Package>G_CQLParser</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>EnvironmentLibrariesSet</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>EnvironmentProviderLibrary</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>					
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>EnvironmentLibrariesSet</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>GCubeEnvironmentProviderLibrary</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>EnvironmentLibrariesSet</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>InformationSystemLibrary</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>					
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>gRS2Library</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>gRS2Library</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>ResourceRegistry</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>ResourceRegistry</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>					
					<Dependency>
						<Service>
 							<Class>Execution</Class>
   					        <Name>ResourceRegistry</Name>
                			<Version>1.0.0</Version>
						</Service>
						<Package>RRModel</Package>
						<Version>[1.0.0,2.0.0)</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>
					<Dependency>
						<Service>
							<Class>ExternalSoftware</Class>
							<Name>slf4j</Name>
							<Version>1.5.0</Version>
						</Service>
						<Package>slf4j</Package>
						<Version>1.5.0</Version>
						<Scope level="GHN"/>
						<Optional>false</Optional>
					</Dependency>			
				</Dependencies>
				<GARArchive>org.gcube.opensearch.opensearchdatasource.gar</GARArchive>
				<PortType>
					<Name>gcube/opensearch/opensearchdatasource/OpenSearchDataSource</Name>
					<WSDL>

<definitions name="OpenSearchDataSourceFactory"
    targetNamespace="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory" 
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <wsdl:import namespace="http://gcube-system.org/namespaces/common/core/faults" location="../gcube/common/core/faults/GCUBEFaults.wsdl"/>

<!--============================================================

                      T Y P E S
                      
  ============================================================-->
<types>
<xsd:schema targetNamespace="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:tns="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	
	<xsd:import
	    namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing"                
	    schemaLocation="../ws/addressing/WS-Addressing.xsd" />
	
	<xsd:element name="createResource" type="tns:createResourceParams"/>
	
	<!-- COMPLEX TYPES -->
	<xsd:complexType name="StringArray">
        <xsd:sequence>
        	<xsd:element name="array" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
	
	<xsd:complexType name="Provider">
		<xsd:sequence>
			<xsd:element maxOccurs="1" minOccurs="1" name="collectionID" type="xsd:string"/>
			<xsd:element maxOccurs="1" minOccurs="1" name="OpenSearchResourceID" type="xsd:string"/>
			<xsd:element maxOccurs="1" minOccurs="1" name="fixedParameters" type="tns:StringArray"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="createResourceParams">
		<xsd:sequence>
			<xsd:element minOccurs="1" maxOccurs="1" name="Fields" type="tns:StringArray"/>
			<xsd:element minOccurs="1" maxOccurs="unbounded" name="Providers" type="tns:Provider"/>
			<xsd:element minOccurs="0" maxOccurs="1" name="resourceKey" type="xsd:string"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:element name="createResourceResponse">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="wsa:EndpointReference"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>
</types>


<!--============================================================

                       M E S S A G E S
                      
  ============================================================-->
<message name="createResourceInputMessage">
	<part name="request" element="tns:createResource"/>
</message>
<message name="createResourceOutputMessage">
	<part name="response" element="tns:createResourceResponse"/>
</message>


<!--============================================================

                       P O R T T Y P E
                      
  ============================================================-->

<portType name="OpenSearchDataSourceFactoryPortType">

	<operation name="createResource">
        <wsdl:documentation>
            Creates an instance of the OpenSearchDataSourceResource class and returns a reference to it
            @param request <code>CreateResource</code> - Object containing the CollectionID and the Description document URI the new resource should be connected to.
            @return <code>CreateResourceResponse</code> - object containing the epr of the created OpenSearchDataSourceResource instance
            @see org.gcube.opensearch.stubs.OpenSearchDataSourceFactoryPortType
            @version 0.1
        </wsdl:documentation>
		<input message="tns:createResourceInputMessage"/>
		<output message="tns:createResourceOutputMessage"/>
		<fault name="fault" message="corefaults:GCUBEUnrecoverableFaultMessage"></fault>
	</operation>
	
</portType>

</definitions>

</WSDL>
				</PortType>
				<PortType>
					<Name>gcube/opensearch/opensearchdatasource/OpenSearchDataSourceFactory</Name>
					<WSDL>

<definitions name="OpenSearchDataSourceFactory"
    targetNamespace="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory" 
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:corefaults="http://gcube-system.org/namespaces/common/core/faults"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <wsdl:import namespace="http://gcube-system.org/namespaces/common/core/faults" location="../gcube/common/core/faults/GCUBEFaults.wsdl"/>

<!--============================================================

                      T Y P E S
                      
  ============================================================-->
<types>
<xsd:schema targetNamespace="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:tns="http://gcube-system.org/namespaces/opensearch/OpenSearchDataSourceFactory"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	
	<xsd:import
	    namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing"                
	    schemaLocation="../ws/addressing/WS-Addressing.xsd" />
	
	<xsd:element name="createResource" type="tns:createResourceParams"/>
	
	<!-- COMPLEX TYPES -->
	<xsd:complexType name="StringArray">
        <xsd:sequence>
        	<xsd:element name="array" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
	
	<xsd:complexType name="Provider">
		<xsd:sequence>
			<xsd:element maxOccurs="1" minOccurs="1" name="collectionID" type="xsd:string"/>
			<xsd:element maxOccurs="1" minOccurs="1" name="OpenSearchResourceID" type="xsd:string"/>
			<xsd:element maxOccurs="1" minOccurs="1" name="fixedParameters" type="tns:StringArray"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="createResourceParams">
		<xsd:sequence>
			<xsd:element minOccurs="1" maxOccurs="1" name="Fields" type="tns:StringArray"/>
			<xsd:element minOccurs="1" maxOccurs="unbounded" name="Providers" type="tns:Provider"/>
			<xsd:element minOccurs="0" maxOccurs="1" name="resourceKey" type="xsd:string"/>
		</xsd:sequence>
	</xsd:complexType>	
	
	<xsd:element name="createResourceResponse">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="wsa:EndpointReference"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>
</types>


<!--============================================================

                       M E S S A G E S
                      
  ============================================================-->
<message name="createResourceInputMessage">
	<part name="request" element="tns:createResource"/>
</message>
<message name="createResourceOutputMessage">
	<part name="response" element="tns:createResourceResponse"/>
</message>


<!--============================================================

                       P O R T T Y P E
                      
  ============================================================-->

<portType name="OpenSearchDataSourceFactoryPortType">

	<operation name="createResource">
        <wsdl:documentation>
            Creates an instance of the OpenSearchDataSourceResource class and returns a reference to it
            @param request <code>CreateResource</code> - Object containing the CollectionID and the Description document URI the new resource should be connected to.
            @return <code>CreateResourceResponse</code> - object containing the epr of the created OpenSearchDataSourceResource instance
            @see org.gcube.opensearch.stubs.OpenSearchDataSourceFactoryPortType
            @version 0.1
        </wsdl:documentation>
		<input message="tns:createResourceInputMessage"/>
		<output message="tns:createResourceOutputMessage"/>
		<fault name="fault" message="corefaults:GCUBEUnrecoverableFaultMessage"></fault>
	</operation>
	
</portType>

</definitions>

</WSDL>
				</PortType>
			</Main>
			<Software  deployable="true">
				<Description>OpenSearch DataSource Stubs</Description>
                <Name>OpenSearchDataSourceStubs</Name>
                <Version>1.1.0</Version>
                <MultiVersion value="true"/>
                <Mandatory level="VO"/>
                <Shareable level="VO"/>
                <Type>library</Type>
                <Files>
                   <File>org.gcube.opensearch.opensearchdatasource.stubs.jar</File>
                </Files>
 				
			</Software>
			<Software deployable="true">
				<Description>OpenSearch DataSource Test Suite</Description>
				<Name>OpenSearchDataSource-test-suite</Name>
				<Version>1.1.0</Version>
				<Files>
					<File>readme.txt</File>
					<File>OpenSearch/OpenSearchTest.java</File>
					<File>OpenSearch/ISClient/PublishGenericResource.java</File>
					<File>OpenSearch/ISClient/DeleteGenericResource.java</File>
					<File>OpenSearch/ISClient/RetrieveGenericResource.java</File>
					<File>OpenSearch/ISClient/UpdateGenericResource.java</File>
					<File>OpenSearch/ReadRS/ReadRS.java</File>
				</Files>
			</Software>
		</Packages>
	</Profile>
</Resource>