http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product/iso/template.xml ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product/iso/template.xml b/src/main/python/plugins/product/iso/template.xml new file mode 100644 index 0000000..eb83846 --- /dev/null +++ b/src/main/python/plugins/product/iso/template.xml @@ -0,0 +1,726 @@ +<?xml version="1.0" encoding="UTF-8"?> +<gmd:DS_Series xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://www.ngdc.noaa.gov/metadata/published/xsd/schema.xsd" + xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" + xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gss="http://www.isotc211.org/2005/gss" + xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gmx="http://www.isotc211.org/2005/gmx" + xmlns:gmi="http://www.isotc211.org/2005/gmi"> + <gmd:composedOf gco:nilReason="inapplicable" /> + <gmd:seriesMetadata> + <gmi:MI_Metadata id="{{ docs[0]['id'] }}"> + <gmd:fileIdentifier> + <gco:CharacterString>{{ docs[0]['product_name'] }}</gco:CharacterString> + </gmd:fileIdentifier> + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + <gmd:characterSet> + <gmd:MD_CharacterSetCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_CharacterSetCode" + codeListValue="UTF8">UTF8 + </gmd:MD_CharacterSetCode> + </gmd:characterSet> + <gmd:hierarchyLevel> + <gmd:MD_ScopeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ScopeCode" + codeListValue="series">series + </gmd:MD_ScopeCode> + </gmd:hierarchyLevel> + {% if docs[0].__contains__('product_contact_role_list') and + docs[0]['product_contact_role_list'].__contains__('POINT_OF_CONTACT') %} + <gmd:contact> + {% for i in range(docs[0]['product_contact_role_list'].__len__()) %} + {% if docs[0]['product_contact_role_list'][i] == 'POINT_OF_CONTACT' %} + <gmd:CI_ResponsibleParty id="seriesMetadataContact"> + <gmd:individualName> + <gco:CharacterString> + {% if docs[0]['product_contact_first_name_list'][i] != 'null' %} + {{ docs[0]['product_contact_first_name_list'][i] }} + {% endif %} + {% if docs[0]['product_contact_middle_name_list'][i] != 'null' %} + {{ docs[0]['product_contact_middle_name_list'][i] }} + {% endif %} + {{ docs[0]['product_contact_last_name_list'][i] }} + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString>{{ docs[0]['product_contact_provider_short_name_list'][i] }} > {{ docs[0]['product_contact_provider_long_name_list'][i] }}</gco:CharacterString> + </gmd:organisationName> + <gmd:positionName> + <gco:CharacterString> + {% if docs[0].__contains__('product_contact_role_list') %} + {{ docs[0]['product_contact_role_list'][i] }} + {% endif %} + </gco:CharacterString> + </gmd:positionName> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:phone> + <gmd:CI_Telephone> + {% if docs[0]['product_contact_phone_list'][i] != 'null' %} + <gmd:voice> + <gco:CharacterString>{{ docs[0]['product_contact_phone_list'][i] }}</gco:CharacterString> + </gmd:voice> + {% else %} + <gmd:voice gco:nilReason="missing" /> + {% endif %} + {% if docs[0]['product_contact_fax_list'][i] != 'null' %} + <gmd:facsimile> + <gco:CharacterString>{{ docs[0]['product_contact_fax_list'][i] }}</gco:CharacterString> + </gmd:facsimile> + {% else %} + <gmd:facsimile gco:nilReason="missing" /> + {% endif %} + </gmd:CI_Telephone> + </gmd:phone> + <gmd:address> + <gmd:CI_Address> + {% if docs[0]['product_contact_address_list'][i] != 'null' %} + <gmd:electronicMailAddress> + <gco:CharacterString>{{ docs[0]['product_contact_address_list'][i] }}</gco:CharacterString> + </gmd:electronicMailAddress> + {% else %} + <gmd:electronicMailAddress gco:nilReason="missing" /> + {% endif %} + </gmd:CI_Address> + </gmd:address> + <gmd:contactInstructions> + <gco:CharacterString>Phone/FAX/E-mail</gco:CharacterString> + </gmd:contactInstructions> + </gmd:CI_Contact> + </gmd:contactInfo> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="pointOfContact">pointOfContact + </gmd:CI_RoleCode> + </gmd:role> + </gmd:CI_ResponsibleParty> + {% endif %} + {% endfor %} + </gmd:contact> + {% else %} + <gmd:contact gco:nilReason="missing" /> + {% endif %} + <gmd:dateStamp> + <gco:Date>{{ docs[0]['product_meta_history_last_revision_date_string'] }}</gco:Date> + </gmd:dateStamp> + <gmd:metadataStandardName> + <gco:CharacterString>ISO 19115-2 Geographic information â Metadata â + Part 2: Extensions for imagery and gridded data + </gco:CharacterString> + </gmd:metadataStandardName> + <gmd:metadataStandardVersion> + <gco:CharacterString>ISO 19115-2:2009-02-15</gco:CharacterString> + </gmd:metadataStandardVersion> + <gmd:locale> + <gmd:PT_Locale> + <gmd:languageCode> + <gmd:LanguageCode + codeList="http://www.loc.gov/standards/iso639-2/php/English_list.php" + codeListValue="eng">eng</gmd:LanguageCode> + </gmd:languageCode> + <gmd:country> + <gmd:Country codeList="http://www.iso.org/iso/iso_3166-1_list_en.zip" + codeListValue="US">US</gmd:Country> + </gmd:country> + <gmd:characterEncoding> + <gmd:MD_CharacterSetCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_CharacterSetCode" + codeListValue="UTF8">UTF8</gmd:MD_CharacterSetCode> + </gmd:characterEncoding> + </gmd:PT_Locale> + </gmd:locale> + <gmd:metadataExtensionInfo> + <gmd:MD_MetadataExtensionInformation> + <gmd:extensionOnLineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>http://www.ngdc.noaa.gov/metadata/published/19115/GHRSST/ISO/CoverageExtensions.xml</gmd:URL> + </gmd:linkage> + <gmd:applicationProfile> + <gco:CharacterString>Web Browser</gco:CharacterString> + </gmd:applicationProfile> + <gmd:description> + <gco:CharacterString>A description of extensions developed at NGDC to classify coverages.</gco:CharacterString> + </gmd:description> + <gmd:function> + <gmd:CI_OnLineFunctionCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnlineFunctionCode" + codeListValue="information">information + </gmd:CI_OnLineFunctionCode> + </gmd:function> + </gmd:CI_OnlineResource> + </gmd:extensionOnLineResource> + </gmd:MD_MetadataExtensionInformation> + </gmd:metadataExtensionInfo> + <gmd:identificationInfo> + <gmd:MD_DataIdentification id="seriesIdentification"> + <gmd:citation> + <gmd:CI_Citation> + {% if docs[0].__contains__('product_name') %} + <gmd:title> + <gco:CharacterString>{{ docs[0]['product_name'] }}</gco:CharacterString> + </gmd:title> + {% else %} + <gmd:title gco:nilReason="missing" /> + {% endif %} + {% if docs[0].__contains__('product_name') %} + <gmd:alternateTitle> + <gco:CharacterString>{{ docs[0]['product_name'] }}</gco:CharacterString> + </gmd:alternateTitle> + {% else %} + <gmd:alternateTitle gco:nilReason="missing" /> + {% endif %} + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>{{ docs[0]['product_create_time_string'] }}</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="creation">creation + </gmd:CI_DateTypeCode> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + {% if docs[0].__contains__('product_revision') %} + <gmd:edition> + <gco:CharacterString>{{ docs[0]['product_revision'] }}</gco:CharacterString> + </gmd:edition> + {% else %} + <gmd:edition gco:nilReason="missing" /> + {% endif %} + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty id="seriesMetadataContact"> + <gmd:individualName gco:nilReason="missing" /> + <gmd:contactInfo gco:nilReason="missing" /> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator">originator + </gmd:CI_RoleCode> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty id="seriesMetadataContact"> + <gmd:individualName gco:nilReason="missing" /> + <gmd:contactInfo gco:nilReason="missing" /> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="publisher">publisher + </gmd:CI_RoleCode> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </gmd:CI_Citation> + </gmd:citation> + {% if docs[0].__contains__('product_name') %} + <gmd:abstract> + <gco:CharacterString>{{ docs[0]['product_name'] }}</gco:CharacterString> + </gmd:abstract> + {% else %} + <gmd:abstract gco:nilReason="missing" /> + {% endif %} + <gmd:credit gco:nilReason="missing" /> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ProgressCode" + codeListValue="onGoing">onGoing + </gmd:MD_ProgressCode> + </gmd:status> + {% if docs[0].__contains__('product_contact_role_list') and docs[0]['product_contact_role_list'].__contains__('POINT_OF_CONTACT') %} + <gmd:pointOfContact> + {% for i in range(docs[0]['product_contact_role_list'].__len__()) %} + {% if docs[0]['product_contact_role_list'][i] == 'POINT_OF_CONTACT' %} + <gmd:CI_ResponsibleParty id="seriesMetadataContact"> + <gmd:individualName> + <gco:CharacterString> + {% if docs[0]['product_contact_first_name_list'][i] != 'null' %} + {{ docs[0]['product_contact_first_name_list'][i] }} + {% endif %} + {% if docs[0]['product_contact_middle_name_list'][i] != 'null' %} + {{ docs[0]['product_contact_middle_name_list'][i] }} + {% endif %} + {{ docs[0]['product_contact_last_name_list'][i] }} + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString>{{ docs[0]['product_contact_provider_short_name_list'][i] }} > {{ docs[0]['product_contact_provider_long_name_list'][i] }}</gco:CharacterString> + </gmd:organisationName> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:phone> + <gmd:CI_Telephone> + {% if docs[0]['product_contact_phone_list'][i] != 'null' %} + <gmd:voice> + <gco:CharacterString>{{ docs[0]['product_contact_phone_list'][i] }}</gco:CharacterString> + </gmd:voice> + {% else %} + <gmd:voice gco:nilReason="missing" /> + {% endif %} + {% if docs[0]['product_contact_fax_list'][i] != 'null' %} + <gmd:facsimile> + <gco:CharacterString>{{ docs[0]['product_contact_fax_list'][i] }}</gco:CharacterString> + </gmd:facsimile> + {% else %} + <gmd:facsimile gco:nilReason="missing" /> + {% endif %} + </gmd:CI_Telephone> + </gmd:phone> + <gmd:address> + <gmd:CI_Address> + {% if docs[0]['product_contact_address_list'][i] != 'null' %} + <gmd:electronicMailAddress> + <gco:CharacterString>{{ docs[0]['product_contact_address_list'][i] }}</gco:CharacterString> + </gmd:electronicMailAddress> + {% else %} + <gmd:electronicMailAddress gco:nilReason="missing" /> + {% endif %} + </gmd:CI_Address> + </gmd:address> + <gmd:contactInstructions> + <gco:CharacterString>Phone/FAX/E-mail</gco:CharacterString> + </gmd:contactInstructions> + {% if docs[0]['product_contact_provider_resource_paths_list'][i] != 'null' %} + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>{{ docs[0]['product_contact_provider_resource_paths_list'][i] }}</gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + {% else %} + <gmd:onlineResource gco:nilReason="missing" /> + {% endif %} + </gmd:CI_Contact> + </gmd:contactInfo> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="pointOfContact">pointOfContact + </gmd:CI_RoleCode> + </gmd:role> + </gmd:CI_ResponsibleParty> + {% endif %} + {% endfor %} + </gmd:pointOfContact> + {% else %} + <gmd:pointOfContact gco:nilReason="missing" /> + {% endif %} + {% if docs[0].__contains__('product_reference_name_list') %} + <gmd:resourceFormat> + {% for i in range(docs[0]['product_reference_name_list'].__len__()) %} + <gmd:MD_Format id="resourceFormat"> + {% if docs[0].__contains__('product_reference_name_list') %} + <gmd:name> + <gco:CharacterString>{{ docs[0]['product_reference_name_list'][i] }}</gco:CharacterString> + </gmd:name> + {% else %} + <gmd:name gco:nilReason="missing" /> + {% endif %} + {% if docs[0].__contains__('product_reference_version_list') %} + <gmd:version> + <gco:CharacterString>{{ docs[0]['product_reference_version_list'][i] }}</gco:CharacterString> + </gmd:version> + {% else %} + <gmd:version gco:nilReason="missing" /> + {% endif %} + <gmd:fileDecompressionTechnique gco:nilReason="missing" /> + </gmd:MD_Format> + {% endfor %} + </gmd:resourceFormat> + {% else %} + <gmd:resourceFormat gco:nilReason="missing" /> + {% endif %} + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <gmd:keyword gco:nilReason="missing" /> + <gmd:type> + <gmd:MD_KeywordTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" + codeListValue="theme">theme + </gmd:MD_KeywordTypeCode> + </gmd:type> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>NASA/GCMD Earth Science Keywords + </gco:CharacterString> + </gmd:title> + <gmd:date gco:nilReason="unknown" /> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + {% if docs[0].__contains__('product_operation_list') %} + {% for i in range(docs[0]['product_operation_list'].__len__()) %} + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <gmd:keyword > + <gco:CharacterString> + Operation: {{ docs[0]['product_operation_list'][i] }} > Agent: {{ docs[0]['product_operation_agent_list'][i] }} + </gco:CharacterString> + </gmd:keyword> + <gmd:type> + <gmd:MD_KeywordTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" + codeListValue="place">place + </gmd:MD_KeywordTypeCode> + </gmd:type> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>NASA/GCMD Location Keywords</gco:CharacterString> + </gmd:title> + <gmd:date gco:nilReason="unknown" /> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + {% endfor %} + {% else %} + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <gmd:keyword gco:nilReason="missing" /> + <gmd:type> + <gmd:MD_KeywordTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode" + codeListValue="place">place + </gmd:MD_KeywordTypeCode> + </gmd:type> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>NASA/GCMD Location Keywords</gco:CharacterString> + </gmd:title> + <gmd:date gco:nilReason="unknown" /> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + {% endif %} + <gmd:resourceConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation gco:nilReason="missing" /> + <gmd:otherConstraints gco:nilReason="missing" /> + </gmd:MD_LegalConstraints> + </gmd:resourceConstraints> + <gmd:spatialRepresentationType> + <gmd:MD_SpatialRepresentationTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_SpatialRepresentationTypeCode" + codeListValue="grid">grid + </gmd:MD_SpatialRepresentationTypeCode> + </gmd:spatialRepresentationType> + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + <gmd:characterSet> + <gmd:MD_CharacterSetCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_CharacterSetCode" + codeListValue="UTF8">UTF8 + </gmd:MD_CharacterSetCode> + </gmd:characterSet> + <gmd:extent> + <gmd:EX_Extent id="boundingExtent"> + <gmd:geographicElement> + <gmd:EX_GeographicBoundingBox id="boundingBox"> + <gmd:extentTypeCode> + <gco:Boolean>true</gco:Boolean> + </gmd:extentTypeCode> + <gmd:westBoundLongitude gco:nilReason="missing" /> + <gmd:eastBoundLongitude gco:nilReason="missing" /> + <gmd:southBoundLatitude gco:nilReason="missing" /> + <gmd:northBoundLatitude gco:nilReason="missing" /> + </gmd:EX_GeographicBoundingBox> + </gmd:geographicElement> + <gmd:geographicElement> + <gmd:EX_GeographicDescription> + <gmd:extentTypeCode> + <gco:Boolean>true</gco:Boolean> + </gmd:extentTypeCode> + <gmd:geographicIdentifier> + <gmd:MD_Identifier> + <gmd:code /> + </gmd:MD_Identifier> + </gmd:geographicIdentifier> + </gmd:EX_GeographicDescription> + </gmd:geographicElement> + <gmd:temporalElement> + <gmd:EX_TemporalExtent id="temporalExtent"> + <gmd:extent> + <TimePeriod xmlns="http://www.opengis.net/gml/3.2" + xmlns:ns1="http://www.opengis.net/gml/3.2" ns1:id="timePeriod"> + <beginPosition>{{ docs[0]['product_start_time_string'] }}</beginPosition> + <endPosition>{{ docs[0]['product_stop_time_string'] }}</endPosition> + </TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + <gmd:verticalElement gco:nilReason="inapplicable" /> + </gmd:EX_Extent> + </gmd:extent> + </gmd:MD_DataIdentification> + </gmd:identificationInfo> + <gmd:contentInfo> + <gmi:MI_CoverageDescription id="referenceInformation"> + <gmd:attributeDescription> + <gco:RecordType xlink:href="http://www.ghrsst.org/documents.htm?parent=475" /> + </gmd:attributeDescription> + <gmd:contentType> + <gmd:MD_CoverageContentTypeCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_CoverageContentTypeCode" + codeListValue="referenceInformation">referenceInformation + </gmd:MD_CoverageContentTypeCode> + </gmd:contentType> + <gmd:dimension> + <gmd:MD_Band> + <gmd:sequenceIdentifier> + <gco:MemberName> + <gco:aName> + <gco:CharacterString>lat</gco:CharacterString> + </gco:aName> + <gco:attributeType> + <gco:TypeName> + <gco:aName> + <gco:CharacterString>float</gco:CharacterString> + </gco:aName> + </gco:TypeName> + </gco:attributeType> + </gco:MemberName> + </gmd:sequenceIdentifier> + </gmd:MD_Band> + </gmd:dimension> + <gmd:dimension> + <gmd:MD_Band> + <gmd:sequenceIdentifier> + <gco:MemberName> + <gco:aName> + <gco:CharacterString>lon</gco:CharacterString> + </gco:aName> + <gco:attributeType> + <gco:TypeName> + <gco:aName> + <gco:CharacterString>float</gco:CharacterString> + </gco:aName> + </gco:TypeName> + </gco:attributeType> + </gco:MemberName> + </gmd:sequenceIdentifier> + </gmd:MD_Band> + </gmd:dimension> + <gmd:dimension> + <gmd:MD_Band> + <gmd:sequenceIdentifier> + <gco:MemberName> + <gco:aName> + <gco:CharacterString>time</gco:CharacterString> + </gco:aName> + <gco:attributeType> + <gco:TypeName> + <gco:aName> + <gco:CharacterString>int</gco:CharacterString> + </gco:aName> + </gco:TypeName> + </gco:attributeType> + </gco:MemberName> + </gmd:sequenceIdentifier> + </gmd:MD_Band> + </gmd:dimension> + </gmi:MI_CoverageDescription> + </gmd:contentInfo> + <gmd:distributionInfo> + <gmd:MD_Distribution> + <gmd:distributionFormat xlink:href="#resourceFormat" /> + <gmd:distributor> + <gmd:MD_Distributor> + <gmd:distributorContact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString>GIBS User Services</gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString>NASA/JPL/GIBS > Global Imagery Browse Services, Jet Propulsion Laboratory, NASA</gco:CharacterString> + </gmd:organisationName> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:address> + <gmd:CI_Address> + <gmd:deliveryPoint> + <gco:CharacterString>4800 Oak Grove Drive</gco:CharacterString> + </gmd:deliveryPoint> + <gmd:city> + <gco:CharacterString>Pasadena</gco:CharacterString> + </gmd:city> + <gmd:administrativeArea> + <gco:CharacterString>CA</gco:CharacterString> + </gmd:administrativeArea> + <gmd:postalCode> + <gco:CharacterString>91109-8099</gco:CharacterString> + </gmd:postalCode> + <gmd:country> + <gco:CharacterString>USA</gco:CharacterString> + </gmd:country> + <gmd:electronicMailAddress> + <gco:CharacterString>[email protected]</gco:CharacterString> + </gmd:electronicMailAddress> + </gmd:CI_Address> + </gmd:address> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>http://gibs.jpl.nasa.gov</gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </gmd:CI_Contact> + </gmd:contactInfo> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="distributor">distributor + </gmd:CI_RoleCode> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:distributorContact> + </gmd:MD_Distributor> + </gmd:distributor> + {% if docs[0].__contains__('product_reference_path_list') and docs[0].__contains__('product_reference_type_list') %} + {% for i in range(docs[0]['product_reference_path_list'].__len__()) %} + if docs[0]['product_reference_type_list'][i] != 'Thumbnail' %} + <gmd:transferOptions> + <gmd:MD_DigitalTransferOptions> + <gmd:onLine> + <gmd:CI_OnlineResource> + {% if docs[0].__contains__('product_reference_path_list') %} + <gmd:linkage> + <gmd:URL>{{ docs[0]['product_reference_path_list'][i] }}</gmd:URL> + </gmd:linkage> + {% else %} + <gmd:linkage gco:nilReason="missing" /> + {% endif %} + {% if docs[0].__contains__('product_reference_name_list') %} + <gmd:name> + <gmd:CharacterString>{{ docs[0]['product_reference_name_list'][i] }}</gmd:CharacterString> + </gmd:name> + {% else %} + <gmd:name gco:nilReason="missing" /> + {% endif %} + {% if docs[0].__contains__('product_type_resource_description_list') %} + <gmd:description> + <gmd:CharacterString>{{ docs[0]['product_type_resource_description_list'][i] }}</gmd:CharacterString> + </gmd:description> + {% else %} + <gmd:description gco:nilReason="missing" /> + {% endif %} + <gmd:function> + <gmd:CI_OnLineFunctionCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnlineFunctionCode" + codeListValue="information">information + </gmd:CI_OnLineFunctionCode> + </gmd:function> + </gmd:CI_OnlineResource> + </gmd:onLine> + </gmd:MD_DigitalTransferOptions> + </gmd:transferOptions> + {% endfor %} + {% else %} + <gmd:transferOptions gco:nilReason="missing" /> + {% endif %} + </gmd:MD_Distribution> + </gmd:distributionInfo> + <gmd:metadataMaintenance> + <gmd:MD_MaintenanceInformation> + <gmd:maintenanceAndUpdateFrequency> + <gmd:MD_MaintenanceFrequencyCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_MaintenanceFrequencyCode" + codeListValue="asNeeded">asNeeded</gmd:MD_MaintenanceFrequencyCode> + </gmd:maintenanceAndUpdateFrequency> + <gmd:maintenanceNote> + <gco:CharacterString>Translated from GCMD DIF + </gco:CharacterString> + </gmd:maintenanceNote> + </gmd:MD_MaintenanceInformation> + </gmd:metadataMaintenance> + <gmi:acquisitionInformation> + <gmi:MI_AcquisitionInformation> + <gmi:instrument> + <gmi:MI_Instrument> + <gmi:identifier gco:nilReason="missing" /> + <gmi:description gco:nilReason="missing" /> + </gmi:MI_Instrument> + </gmi:instrument> + <gmi:platform> + <gmi:MI_Platform> + <gmi:identifier gco:nilReason="missing" /> + <gmi:description gco:nilReason="missing" /> + <gmi:sponsor> + <gmd:CI_ResponsibleParty> + <gmd:organisationName> + <gco:CharacterString>NASA/JPL/GIBS > Global Imagery Browse Services, Jet Propulsion Laboratory, NASA</gco:CharacterString> + </gmd:organisationName> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>http://gibs.jpl.nasa.gov</gmd:URL> + </gmd:linkage> + <gmd:function> + <gmd:CI_OnLineFunctionCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" + codeListValue="information" /> + </gmd:function> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </gmd:CI_Contact> + </gmd:contactInfo> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="sponsor" /> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmi:sponsor> + <gmi:sponsor> + <gmd:CI_ResponsibleParty> + <gmd:organisationName> + <gco:CharacterString>NASA/JPL/PODAAC > Physical + Oceanography Distributed Active Archive Center, Jet + Propulsion Laboratory, NASA</gco:CharacterString> + </gmd:organisationName> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>http://podaac.jpl.nasa.gov</gmd:URL> + </gmd:linkage> + <gmd:function> + <gmd:CI_OnLineFunctionCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" + codeListValue="information" /> + </gmd:function> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </gmd:CI_Contact> + </gmd:contactInfo> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" + codeListValue="sponsor" /> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmi:sponsor> + <gmi:instrument xlink:href="{{ docs[0]['product_name'] }}" /> + </gmi:MI_Platform> + </gmi:platform> + </gmi:MI_AcquisitionInformation> + </gmi:acquisitionInformation> + </gmi:MI_Metadata> + </gmd:seriesMetadata> +</gmd:DS_Series>
http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/productType/__init__.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/productType/__init__.py b/src/main/python/plugins/productType/__init__.py new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/productType/atom/AtomWriter.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/productType/atom/AtomWriter.py b/src/main/python/plugins/productType/atom/AtomWriter.py new file mode 100644 index 0000000..916b89c --- /dev/null +++ b/src/main/python/plugins/productType/atom/AtomWriter.py @@ -0,0 +1,26 @@ +import logging +import datetime + +from edge.elasticsearch.opensearch.datasetatomresponse import DatasetAtomResponse +from edge.elasticsearch.datasetwriter import DatasetWriter + +class AtomWriter(DatasetWriter): + def __init__(self, configFilePath): + super(AtomWriter, self).__init__(configFilePath) + + def _generateOpenSearchResponse(self, solrResponse, searchText, searchUrl, searchParams, pretty): + response = DatasetAtomResponse( + self._configuration.get('portal', 'datasetUrl'), + self._configuration.get('service', 'host'), + self._configuration.get('service', 'url'), + self.datasets + ) + + response.title = 'GIBS Imagery Search Results' + response.link = searchUrl + response.authors.append('GIBS Imagery Search Service') + response.updated = datetime.datetime.utcnow().isoformat()+'Z' + response.id = 'tag:'+self._configuration.get('service', 'host')+','+datetime.datetime.utcnow().date().isoformat() + response.parameters = searchParams + + return response.generate(solrResponse, pretty) http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/productType/atom/__init__.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/productType/atom/__init__.py b/src/main/python/plugins/productType/atom/__init__.py new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/productType/atom/plugin.conf ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/productType/atom/plugin.conf b/src/main/python/plugins/productType/atom/plugin.conf new file mode 100644 index 0000000..66e51b6 --- /dev/null +++ b/src/main/python/plugins/productType/atom/plugin.conf @@ -0,0 +1,11 @@ +[solr] +datasetUrl=http://localhost:9200/gibs/productType +granuleUrl=http://localhost:9200/gibs/product +entriesPerPage=7 + +[portal] +datasetUrl=http://localhost:8000/drupal/dataset + +[service] +url=http://localhost:8890 +host=localhost:8890 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/__init__.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/__init__.py b/src/main/python/plugins/product_type/__init__.py new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/atom/Writer.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/atom/Writer.py b/src/main/python/plugins/product_type/atom/Writer.py new file mode 100644 index 0000000..b381f57 --- /dev/null +++ b/src/main/python/plugins/product_type/atom/Writer.py @@ -0,0 +1,74 @@ +import logging +import os +import os.path +import urllib + +from edge.writer.solrtemplateresponsewriter import SolrTemplateResponseWriter +from edge.opensearch.solrcmrtemplateresponse import SolrCmrTemplateResponse + +class Writer(SolrTemplateResponseWriter): + def __init__(self, configFilePath): + super(Writer, self).__init__(configFilePath) + + templatePath = os.path.dirname(configFilePath) + os.sep + templatePath += self._configuration.get('service', 'template') + self.template = self._readTemplate(templatePath) + + def _generateOpenSearchResponse(self, solrResponse, searchText, searchUrl, searchParams, pretty): + print "product_type:seachParams = [%s]\n" %searchParams + response = SolrCmrTemplateResponse(self._configuration, searchUrl, searchParams) + response.setTemplate(self.template) + response.variables['serviceUrl'] = self._configuration.get('service', 'url') + + return response.generate(solrResponse, pretty=pretty) + + def _constructSolrQuery(self, startIndex, entriesPerPage, parameters, facets): + queries = [] + filterQueries = [] + + for key, value in parameters.iteritems(): + if key == 'keyword': + queries.append(urllib.quote(value)) + elif key == 'layers' and value == 'true': + filterQueries.append('-product_type_identifier:*_SRC') + elif key == 'layers' and value == 'false': + filterQueries.append('product_type_identifier:*_SRC') + elif key == 'product_type_identifier': + filterQueries.append('product_type_identifier:'+value) + elif key == 'startTime': + queries.append('product_type_last_updated:['+value+'%20TO%20*]') + elif key == 'endTime': + queries.append('product_type_last_updated:[*%20TO%20'+value+']') + elif key == 'bbox': + coordinates = value.split(",") + filterQueries.append('Spatial-Geometry:[' + coordinates[1] + ',' + coordinates[0] + '%20TO%20' + coordinates[3] + ',' + coordinates[2] + ']') + elif key == 'id': + queries.append('id:' + self._urlEncodeSolrQueryValue(value)) + + for key, value in facets.iteritems(): + if type(value) is list: + if (len(value) == 1): + filterQueries.append(key + ':' + self._urlEncodeSolrQueryValue(value[0])) + else: + filterQueries.append(key + ':(' + '+OR+'.join([ self._urlEncodeSolrQueryValue(x) for x in value ]) + ")") + else: + filterQueries.append(key + ':' + self._urlEncodeSolrQueryValue(value)) + + if len(queries) == 0: + queries.append('*:*') + + query = 'q='+'+AND+'.join(queries)+'&version=2.2&indent=on&wt=json' + + if len(filterQueries) > 0: + query += '&fq='+'+AND+'.join(filterQueries) + + if self.facet: + query += '&rows=0&facet=true&facet.limit=-1&facet.mincount=1&' + query += '&'.join(['facet.field=' + facet for facet in self._configuration.get('solr', 'facets').split(',')]) + else: + query += '&start='+str(startIndex)+'&rows='+str(entriesPerPage) + query += '&sort=' + self._configuration.get('solr', 'sort') + + logging.debug('solr query: '+query) + + return query http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/atom/__init__.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/atom/__init__.py b/src/main/python/plugins/product_type/atom/__init__.py new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/atom/plugin.conf ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/atom/plugin.conf b/src/main/python/plugins/product_type/atom/plugin.conf new file mode 100644 index 0000000..617e1d4 --- /dev/null +++ b/src/main/python/plugins/product_type/atom/plugin.conf @@ -0,0 +1,12 @@ +[solr] +datasetUrl=http://localhost:8983/solr/product_type +entriesPerPage=10 +maxEntriesPerPage=2000 +defaultSearchParam=keyword +parameters=keyword,layers,startTime,endTime,bbox,id +facets={} +sort=product_type_title+asc + +[service] +url=http://localhost:8890 +template=template.xml http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/atom/template.xml ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/atom/template.xml b/src/main/python/plugins/product_type/atom/template.xml new file mode 100644 index 0000000..b02803e --- /dev/null +++ b/src/main/python/plugins/product_type/atom/template.xml @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="UTF-8"?> +<feed esipdiscovery:version="1.2" + xmlns="http://www.w3.org/2005/Atom" + xmlns:dc="http://purl.org/dc/terms/" + xmlns:echo="http://www.echo.nasa.gov/esip" + xmlns:gibs="http://gibs.jpl.nasa.gov/esip" + xmlns:esipdiscovery="http://commons.esipfed.org/ns/discovery/1.2/" + xmlns:georss="http://www.georss.org/georss/10" + xmlns:gml="http://www.opengis.net/gml" + xmlns:os="http://a9.com/-/spec/opensearch/1.1/" + xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/"> + <updated>{{ updated }}</updated> + <id>https://api.echo.nasa.gov:443/opensearch/datasets.atom</id> + <author> + <name>GIBS</name> + <email>[email protected]</email> + </author> + <title type="text">GIBS Product Type Metadata</title> + <os:totalResults>{{ numFound }}</os:totalResults> + <os:itemsPerPage>{{ itemsPerPage }}</os:itemsPerPage> + <os:startIndex>{{ startIndex }}</os:startIndex> + <os:Query role="request" + xmlns:echo="http://www.echo.nasa.gov/esip" + xmlns:geo="http://a9.com/-/opensearch/extensions/geo/1.0/" + xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/" /> + <subtitle type="text">Search parameters: None</subtitle> + <link href="{{ myself }}" hreflang="en-US" rel="self" type="application/atom+xml" /> + {% if last %}<link href="{{ last }}" hreflang="en-US" rel="last" type="application/atom+xml" />{% endif %} + {% if prev %}<link href="{{ prev }}" hreflang="en-US" rel="previous" type="application/atom+xml" />{% endif %} + {% if next %}<link href="{{ next }}" hreflang="en-US" rel="next" type="application/atom+xml" />{% endif %} + {% if first %}<link href="{{ first }}" hreflang="en-US" rel="first" type="application/atom+xml" />{% endif %} + <link href="https://wiki.earthdata.nasa.gov/display/echo/Open+Search+API+release+information" + hreflang="en-US" rel="describedBy" title="Release Notes" type="text/html" /> + {% for doc in docs %} + <entry> + <id>{{ link }}?id={{ doc['product_type_id'] }}</id> + <dc:identifier>{{ doc['product_type_identifier'] }}</dc:identifier> + <author> + <name>GIBS</name> + <email>[email protected]</email> + </author> + <title type="text">{{ doc['product_type_title'] }}</title> + {% if doc['product_type_description'] and doc['product_type_description'] != 'null' %} + <summary type="text">{{ 'summary: ' + doc['product_type_description'] }}</summary> + {% elif doc['product_type_description'] == 'null' %} + <summary type="text">{{ 'summary: product_type_description is set to \'null\' in the database for product_type_id:[' + doc['product_type_id'] + ']' }} </summary> + {% else %} + <summary type="text">{{ 'summary: product_type_description is not in the database for product_type_id:[' + doc['product_type_id'] + ']' }} </summary> + {% endif %} + <updated>{{ doc['product_type_last_updated_string'] }}</updated> + {% for i in range(doc['product_type_dataset_id_list']|count) %} + <gibs:cmr> + {% if doc['cmr_dataset_id'] %}<echo:datasetId>{{ doc['cmr_dataset_id'][i] }}</echo:datasetId> + {% else %}<echo:datasetId />{% endif %} + {% if doc['cmr_summary'] %}<echo:description>{{ doc['cmr_summary'][i] }}</echo:description> + {% else %}<echo:description />{% endif %} + {% if doc['cmr_short_name'] %}<echo:shortName>{{ doc['cmr_short_name'][i] }}</echo:shortName> + {% else %}<echo:shortName />{% endif %} + {% if doc['cmr_title'] %}<echo:longName>{{ doc['cmr_title'][i] }}</echo:longName> + {% else %}<echo:longName />{% endif %} + {% if doc['cmr_version_id'] %}<echo:versionId>{{ doc['cmr_version_id'][i] }}</echo:versionId> + {% else %}<echo:versionId />{% endif %} + {% if doc['cmr_updated'] %}<echo:lastUpdate>{{ doc['cmr_updated'][i] }}</echo:lastUpdate> + {% else %}<echo:lastUpdate />{% endif %} + {% if doc['cmr_data_center'] %}<echo:dataCenter>{{ doc['cmr_data_center'][i] }}</echo:dataCenter> + {% else %}<echo:dataCenter />{% endif %} + {% if doc['cmr_original_format'] %}<echo:originalFormat>{{ doc['cmr_original_format'][i] }}</echo:originalFormat> + {% else %}<echo:originalFormat />{% endif %} + {% if doc['cmr_orbit_parameters'] %} + {% if doc['cmr_orbit_parameters'][i] != {} %}<echo:orbitParameters>{{ doc['cmr_orbit_parameters'][i] }}</echo:orbitParameters> + {% else %}<echo:orbitParameters />{% endif %} + {% else %}<echo:orbitParameters />{% endif %} + {% if doc['cmr_score'] %}<echo:score>{{ doc['cmr_score'][i] }}</echo:score>{% else %}<echo:score />{% endif %} + {% if doc['cmr_processing_level_id'] %}<echo:processingLevelId>{{ doc['cmr_processing_level_id'][i] }}</echo:processingLevelId> + {% else %}<echo:processingLevelId />{% endif %} + {% if doc['cmr_coordinate_system'] %}<echo:coordinateSystem>{{ doc['cmr_coordinate_system'][i] }}</echo:coordinateSystem> + {% else %}<echo:coordinateSystem />{% endif %} + {% if doc['cmr_online_access_flag'] %}<echo:onlineAccessFlag>{{ doc['cmr_online_access_flag'][i] }}</echo:onlineAccessFlag> + {% else %}<echo:onlineAccessFlag />{% endif %} + {% if doc['cmr_browse_flag'] %}<echo:browseFlag>{{ doc['cmr_browse_flag'][i] }}</echo:browseFlag> + {% else %}<echo:browseFlag />{% endif %} + {% if doc['cmr_boxes'] %} + {% for box in doc['cmr_boxes'][i] %} + <georss:box>{{ box }}</georss:box> + {% endfor %} + {% else %}<georss:box />{% endif %} + {% if doc['cmr_links'] %} + {% for cmr_link in doc['cmr_links'][i] %} + <link href="{{ cmr_link['href'] }}" hreflang="en-US" rel="enclosure" title="{{ cmr_link['title'] }}" /> + {% endfor %} + {% endif %} + </gibs:cmr> + {% endfor %} + {% if doc['product_type_metadata_platform'] %} + <echo:platform>{{ doc['product_type_metadata_platform'] }}</echo:platform> + {% else %} + <echo:platform>{{ 'platform: product_type_metadata_platform is not in the database' }}</echo:platform> + {% endif %} + {% if doc['product_type_metadata_instrument'] %} + <echo:instrument>{{ doc['product_type_metadata_instrument'] }}</echo:instrument> + {% else %} + <echo:instrument>{{ 'instrument: product_type_metadata_instrument is not in the database' }}</echo:instrument> + {% endif %} + {% if doc['product_type_policy_data_format'] %} + <echo:dataFormat>{{ doc['product_type_policy_data_format'] }}</echo:dataFormat> + {% else %} + <echo:dataFormat>{{ 'dataFormat: product_type_policy_data_format is not in the database' }}</echo:dataFormat> + {% endif %} + <link href="{{ serviceUrl }}/ws/metadata/product_type?id={{ doc['id'] }}&pretty=true" + hreflang="en-US" rel="alternate" title="Product Type metadata" type="application/xml" /> + <link href="{{ serviceUrl }}/ws/search/product?product_pt_id={{ doc['id'] }}&pretty=true" + hreflang="en-US" rel="enclosure" title="Product Search" type="application/xml" pretty="true" /> + <dc:date>{{ doc['product_type_last_updated_string'] }}</dc:date> + </entry> + {% endfor %} +</feed> http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/iso/Writer.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/iso/Writer.py b/src/main/python/plugins/product_type/iso/Writer.py new file mode 100644 index 0000000..84295cf --- /dev/null +++ b/src/main/python/plugins/product_type/iso/Writer.py @@ -0,0 +1,35 @@ +import logging +import os +import os.path + +from edge.writer.solrtemplateresponsewriter import SolrTemplateResponseWriter +from edge.opensearch.solrtemplateresponse import SolrTemplateResponse + +class Writer(SolrTemplateResponseWriter): + def __init__(self, configFilePath): + super(Writer, self).__init__(configFilePath) + + templatePath = os.path.dirname(configFilePath) + os.sep + templatePath += self._configuration.get('service', 'template') + self.template = self._readTemplate(templatePath) + + def _generateOpenSearchResponse(self, solrResponse, searchText, searchUrl, searchParams, pretty): + response = SolrTemplateResponse(self._configuration, searchUrl, searchParams) + response.setTemplate(self.template) + + return response.generate(solrResponse, pretty=pretty) + + def _constructSolrQuery(self, startIndex, entriesPerPage, parameters, facets): + queries = [] + + for key, value in parameters.iteritems(): + if key == 'id': + queries.append('id:' + self._urlEncodeSolrQueryValue(value)) + elif key == 'title': + queries.append('product_type_title:' + self._urlEncodeSolrQueryValue(value)) + + query = 'q='+'+AND+'.join(queries)+'&version=2.2&indent=on&wt=json'+'&rows='+str(entriesPerPage) + + logging.debug('solr query: '+query) + + return query http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/iso/__init__.py ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/iso/__init__.py b/src/main/python/plugins/product_type/iso/__init__.py new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/plugins/product_type/iso/plugin.conf ---------------------------------------------------------------------- diff --git a/src/main/python/plugins/product_type/iso/plugin.conf b/src/main/python/plugins/product_type/iso/plugin.conf new file mode 100644 index 0000000..fbe4c31 --- /dev/null +++ b/src/main/python/plugins/product_type/iso/plugin.conf @@ -0,0 +1,8 @@ +[solr] +datasetUrl=http://localhost:8983/solr/product_type +entriesPerPage=1 +parameters=id,title + +[service] +url=http://localhost:8890 +template=template.xml
