http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/server.py
----------------------------------------------------------------------
diff --git a/src/main/python/server.py b/src/main/python/server.py
new file mode 100644
index 0000000..409593f
--- /dev/null
+++ b/src/main/python/server.py
@@ -0,0 +1,102 @@
+import tornado.httpserver
+import tornado.ioloop
+import tornado.web
+
+import logging
+import logging.config
+import os
+import ConfigParser
+import socket
+
+import pluginhandler
+
+class GenericHandler(tornado.web.RequestHandler):
+    def initialize(self, pluginName, format=None):
+        super(GenericHandler, self).initialize()
+        self._pluginHandler = pluginhandler.PluginHandler(pluginName, 
'plugins', format)
+
+    @tornado.web.asynchronous
+    def get(self):
+        self._handleRequest('get')
+
+    @tornado.web.asynchronous
+    def post(self):
+        self._handleRequest('post')
+
+    @tornado.web.asynchronous
+    def options(self):
+        self._handleRequest('options')
+
+    def _handleRequest(self, httpMethod):
+        try:
+            #logging.debug("_handleRequest")
+            self._pluginHandler.handleRequest(httpMethod, self.request.path, 
self)
+        except BaseException as exception:
+            logging.exception('something is wrong with this plugin: 
'+str(exception))
+
+            self.set_status(404)
+            self.write('something is wrong with this plugin: '+str(exception))
+            self.finish()
+
+class TemplateRenderHandler(tornado.web.RequestHandler):
+    def get(self):
+        self.set_header("Content-Type", "application/xml")
+        try:
+            fileName = self.request.path.split('/').pop()
+            self.render(fileName)
+        except BaseException as exception:
+            self.set_header("Content-Type", "text/html")
+            self.set_status(404)
+            self.write('File not found '+fileName)
+
+if __name__ == "__main__":
+    #logging.basicConfig(filename="log.txt",level=logging.DEBUG)
+    logging.config.fileConfig(r'./logging.conf')
+
+    configuration = ConfigParser.RawConfigParser()
+    configuration.read(r'./config.conf')
+
+    settings = dict(static_path=os.path.join(os.path.dirname(__file__), 
"static"), static_url_prefix="/static/", 
template_path=os.path.join(os.path.dirname(__file__), "templates"))
+    application = tornado.web.Application([
+        #(r"/dataset/.*", DatasetHandler),
+        (r"/heartbeat", GenericHandler, dict(pluginName='heartbeat', 
format=['json'])),
+        (r"/ws/search/samos", GenericHandler, dict(pluginName='samos', 
format=['json'])),
+        (r"/ws/search/icoads", GenericHandler, dict(pluginName='icoads', 
format=['json'])),
+        (r"/ws/search/spurs", GenericHandler, dict(pluginName='spurs', 
format=['json'])),
+        (r"/ws/search/spurs2", GenericHandler, dict(pluginName='spurs2', 
format=['json'])),
+        (r"/nexus/climatology", GenericHandler, dict(pluginName='nexus', 
format=['climatology'])),
+        (r"/nexus/solr", GenericHandler, dict(pluginName='nexus', 
format=['solr'])),
+        (r"/nexus/subsetter", GenericHandler, dict(pluginName='nexus', 
format=['subsetter'])),
+        (r"/ws/search/dataset", GenericHandler, dict(pluginName='slcp', 
format=['atom'])),
+        (r"/ws/search/granule", GenericHandler, dict(pluginName='slcp', 
format=['granule'])),
+        (r"/ws/facet/dataset", GenericHandler, dict(pluginName='slcp', 
format=['facet'])),
+        (r"/ws/suggest/dataset", GenericHandler, dict(pluginName='slcp', 
format=['suggest'])),
+        (r"/ws/metadata/dataset", GenericHandler, dict(pluginName='slcp', 
format=['echo10', 'umm-json'])),
+        (r"/ws/indicator/dataset", GenericHandler, dict(pluginName='slcp', 
format=['indicator'])),
+        (r"/ws/dat/dataset", GenericHandler, dict(pluginName='slcp', 
format=['dat'])),
+        (r"/ws/search/content", GenericHandler, dict(pluginName='slcp', 
format=['content'])),
+        (r"/ws/search/basin", GenericHandler, dict(pluginName='slcp', 
format=['basin'])),
+        (r"/ws/search/anomaly", GenericHandler, 
dict(pluginName='oceanxtremes', format=['datacasting'])),
+        (r"/ws/submit/anomaly", GenericHandler, 
dict(pluginName='oceanxtremes', format=['post'])),
+        (r"/ws/search/attribute", GenericHandler, dict(pluginName='oiip', 
format=['json', 'xml'])),
+        (r"/tie/collection", GenericHandler, dict(pluginName='tie', 
format=['collection'])),
+        (r"/example/es", GenericHandler, dict(pluginName='example', 
format=['elastic'])),
+        #(r"/ws/metadata/dataset", DatasetHandler, dict(format=['iso', 
'gcmd'])),
+        #(r"/granule/.*", GranuleHandler),
+        #(r"/ws/search/granule", GenericHandler, dict(pluginName='product', 
format=['atom'])),
+        #(r"/ws/metadata/granule", GranuleHandler, dict(format=['iso', 'fgdc', 
'datacasting'])),
+        (r"/passthrough/.*", GenericHandler, dict(pluginName='passthrough')),
+        (r"/ws/search/.*", TemplateRenderHandler)
+    ], default_host=configuration.get('server', 'host'), **settings)
+
+    http_server = tornado.httpserver.HTTPServer(application)
+    http_server.listen(
+        configuration.getint('server', 'port')
+    )
+    ioLoop = tornado.ioloop.IOLoop.instance()
+    try:
+        logging.info('tornado is started.')
+        ioLoop.start()
+    except KeyboardInterrupt:
+        logging.info('tornado is shutting down.')
+        ioLoop.stop()

http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/templates/podaac-dataset-osd.xml
----------------------------------------------------------------------
diff --git a/src/main/python/templates/podaac-dataset-osd.xml 
b/src/main/python/templates/podaac-dataset-osd.xml
new file mode 100644
index 0000000..a59f6b6
--- /dev/null
+++ b/src/main/python/templates/podaac-dataset-osd.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/";
+  xmlns:georss="http://www.georss.org/georss"; 
xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/";
+  xmlns:gml="http://www.opengis.net/gml"; 
xmlns:podaac="http://podaac.jpl.nasa.gov/opensearch/";>  
+   <ShortName>PO.DAAC Dataset Search</ShortName>
+   <Description>PO.DAAC Dataset Search</Description>
+   <Tags>PO.DAAC Dataset Search</Tags>
+   <Contact>[email protected]</Contact>
+   <Url type="application/atom+xml" template="{{ request.protocol }}://{{ 
request.host 
}}/ws/search/dataset?keyword={searchTerms}&amp;startIndex={startIndex?}&amp;itemsPerPage={count?}&amp;bbox={georss:box?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;datasetId={podaac:persistentId?}&amp;shortName={podaac:shortName?}&amp;sortBy={podaac:sortBy?}&amp;pretty={podaac:pretty?}&amp;processLevel={podaac:processLevel?}&amp;format=atom"/>
+   <Url type="application/rss+xml" template="{{ request.protocol }}://{{ 
request.host 
}}/ws/search/dataset?keyword={searchTerms}&amp;startIndex={startIndex?}&amp;itemsPerPage={count?}&amp;bbox={georss:box?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;datasetId={podaac:persistentId?}&amp;shortName={podaac:shortName?}&amp;sortBy={podaac:sortBy?}&amp;pretty={podaac:pretty?}&amp;processLevel={podaac:processLevel?}&amp;format=rss"/>
+   <LongName>PO.DAAC Dataset Search</LongName>
+   <Developer>PO.DAAC</Developer>
+   <Language>en-us</Language>
+   <OutputEncoding>UTF-8</OutputEncoding>
+   <InputEncoding>UTF-8</InputEncoding>
+</OpenSearchDescription>

http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/python/templates/podaac-granule-osd.xml
----------------------------------------------------------------------
diff --git a/src/main/python/templates/podaac-granule-osd.xml 
b/src/main/python/templates/podaac-granule-osd.xml
new file mode 100644
index 0000000..e55c3e9
--- /dev/null
+++ b/src/main/python/templates/podaac-granule-osd.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/";
+  xmlns:georss="http://www.georss.org/georss"; 
xmlns:time="http://a9.com/-/opensearch/extensions/time/1.0/";
+  xmlns:gml="http://www.opengis.net/gml"; 
xmlns:podaac="http://podaac.jpl.nasa.gov/opensearch/";>  
+   <ShortName>PO.DAAC Granule Search</ShortName>
+   <Description>PO.DAAC Granule Search</Description>
+   <Tags>PO.DAAC Granule Search</Tags>
+   <Contact>[email protected]</Contact>
+   <Url type="application/atom+xml" template="{{ request.protocol }}://{{ 
request.host 
}}/ws/search/granule?datasetId={podaac:persistentId}&amp;startIndex={startIndex?}&amp;itemsPerPage={count?}&amp;bbox={georss:box?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;granuleName={podaac:granuleName?}&amp;shortName={podaac:shortName?}&amp;sortBy={podaac:sortBy?}&amp;pretty={podaac:pretty?}&amp;format=atom"/>
+   <Url type="application/rss+xml" template="{{ request.protocol }}://{{ 
request.host 
}}/ws/search/granule?datasetId={podaac:persistentId}&amp;startIndex={startIndex?}&amp;itemsPerPage={count?}&amp;bbox={georss:box?}&amp;startTime={time:start?}&amp;endTime={time:end?}&amp;granuleName={podaac:granuleName?}&amp;shortName={podaac:shortName?}&amp;sortBy={podaac:sortBy?}&amp;pretty={podaac:pretty?}&amp;format=rss"/>
+   <LongName>PO.DAAC Granule Search</LongName>
+   <Developer>PO.DAAC</Developer>
+   <Language>en-us</Language>
+   <OutputEncoding>UTF-8</OutputEncoding>
+   <InputEncoding>UTF-8</InputEncoding>
+</OpenSearchDescription>

http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/solr/product/conf/data-config.xml
----------------------------------------------------------------------
diff --git a/src/main/solr/product/conf/data-config.xml 
b/src/main/solr/product/conf/data-config.xml
new file mode 100644
index 0000000..afc4741
--- /dev/null
+++ b/src/main/solr/product/conf/data-config.xml
@@ -0,0 +1,106 @@
+<!--*******************************************************************************************************************-->
+<!-- GIBS: product dataimport data-config.xml                                  
                                        -->
+<!-- url="jdbc:postgresql://localhost:8888/gibs"                               
                                        -->
+<!-- user=gibs"                                                                
                                        -->
+<!--*******************************************************************************************************************-->
+<dataConfig>
+
+    <dataSource 
+        driver="org.postgresql.Driver" 
+        url="jdbc:postgresql://localhost/twright" 
+        user="twright" />
+
+    <document>
+
+        <entity name="product"
+            query="select * from product_view"
+            transformer="RegexTransformer">
+
+            <field column="product_granule_id_list"                            
 name="product_granule_id_list"                             splitBy = "," />
+            <field column="product_granule_version_list"                       
 name="product_granule_version_list"                        splitBy = "," />
+            <field column="product_granule_dataset_id_list"                    
 name="product_granule_dataset_id_list"                     splitBy = "," />
+            <field column="product_granule_metadata_endpoint_list"             
 name="product_granule_metadata_endpoint_list"              splitBy = "," />
+            <field column="product_granule_remote_granule_ur_list"             
 name="product_granule_remote_granule_ur_list"              splitBy = "," />
+
+            <field column="product_operation_version_list"                     
 name="product_operation_version_list"                      splitBy = "," />
+            <field column="product_operation_agent_list"                       
 name="product_operation_agent_list"                        splitBy = "," />
+            <field column="product_operation_list"                             
 name="product_operation_list"                              splitBy = "," />
+            <field column="product_operation_command_list"                     
 name="product_operation_command_list"                      splitBy = "," />
+            <field column="product_operation_arguments_list"                   
 name="product_operation_arguments_list"                    splitBy = "," />
+            <field column="product_operation_start_time_list"                  
 name="product_operation_start_time_list"                   splitBy = "," />
+            <field column="product_operation_stop_time_list"                   
 name="product_operation_stop_time_list"                    splitBy = "," />
+            <field column="product_operation_start_time_string_list"           
 name="product_operation_start_time_string_list"            splitBy = "," />
+            <field column="product_operation_stop_time_string_list"            
 name="product_operation_stop_time_string_list"             splitBy = "," />
+
+            <field column="product_archive_name_list"                          
 name="product_archive_name_list"                           splitBy = "," />
+            <field column="product_archive_version_list"                       
 name="product_archive_version_list"                        splitBy = "," />
+            <field column="product_archive_type_list"                          
 name="product_archive_type_list"                           splitBy = "," />
+            <field column="product_archive_file_size_list"                     
 name="product_archive_file_size_list"                      splitBy = "," />
+            <field column="product_archive_checksum_list"                      
 name="product_archive_checksum_list"                       splitBy = "," />
+            <field column="product_archive_compress_flag_list"                 
 name="product_archive_compress_flag_list"                  splitBy = "," />
+            <field column="product_archive_status_list"                        
 name="product_archive_status_list"                         splitBy = "," />
+            <field column="product_archive_reference_description_list"         
 name="product_archive_reference_description_list"          splitBy = "," />
+            <field column="product_archive_reference_name_list"                
 name="product_archive_reference_name_list"                 splitBy = "," />
+            <field column="product_archive_reference_type_list"                
 name="product_archive_reference_type_list"                 splitBy = "," />
+            <field column="product_archive_reference_status_list"              
 name="product_archive_reference_status_list"               splitBy = "," />
+
+            <field column="product_reference_version_list"                     
 name="product_reference_version_list"                      splitBy = "," />
+            <field column="product_reference_type_list"                        
 name="product_reference_type_list"                         splitBy = "," />
+            <field column="product_reference_name_list"                        
 name="product_reference_name_list"                         splitBy = "," />
+            <field column="product_reference_path_list"                        
 name="product_reference_path_list"                         splitBy = "," />
+            <field column="product_reference_description_list"                 
 name="product_reference_description_list"                  splitBy = "," />
+            <field column="product_reference_status_list"                      
 name="product_reference_status_list"                       splitBy = "," />
+
+            <field column="product_data_day_version_list"                      
 name="product_data_day_version_list"                       splitBy = "," />
+            <field column="product_data_day_list"                              
 name="product_data_day_list"                               splitBy = "," />
+            <field column="product_data_day_string_list"                       
 name="product_data_day_string_list"                        splitBy = "," />
+
+            <field column="product_contact_version_list"                       
 name="product_contact_version_list"                        splitBy = "," />
+            <field column="product_contact_role_list"                          
 name="product_contact_role_list"                           splitBy = "," />
+            <field column="product_contact_first_name_list"                    
 name="product_contact_first_name_list"                     splitBy = "," />
+            <field column="product_contact_last_name_list"                     
 name="product_contact_last_name_list"                      splitBy = "," />
+            <field column="product_contact_middle_name_list"                   
 name="product_contact_middle_name_list"                    splitBy = "," />
+            <field column="product_contact_address_list"                       
 name="product_contact_address_list"                        splitBy = "," />
+            <field column="product_contact_notify_type_list"                   
 name="product_contact_notify_type_list"                    splitBy = "," />
+            <field column="product_contact_email_list"                         
 name="product_contact_email_list"                          splitBy = "," />
+            <field column="product_contact_phone_list"                         
 name="product_contact_phone_list"                          splitBy = "," />
+            <field column="product_contact_fax_list"                           
 name="product_contact_fax_list"                            splitBy = "," />
+            <field column="product_contact_provider_long_name_list"            
 name="product_contact_provider_long_name_list"             splitBy = "," />
+            <field column="product_contact_provider_short_name_list"           
 name="product_contact_provider_short_name_list"            splitBy = "," />
+            <field column="product_contact_provider_type_list"                 
 name="product_contact_provider_type_list"                  splitBy = "," />
+            <field 
column="product_contact_provider_resource_descriptions_list" 
name="product_contact_provider_resource_descriptions_list" splitBy = "," />
+            <field column="product_contact_provider_resource_names_list"       
 name="product_contact_provider_resource_names_list"        splitBy = "," />
+            <field column="product_contact_provider_resource_paths_list"       
 name="product_contact_provider_resource_paths_list"        splitBy = "," />
+            <field column="product_contact_provider_resource_types_list"       
 name="product_contact_provider_resource_types_list"        splitBy = "," />
+  
+            <field column="product_element_version_list"                       
 name="product_element_version_list"                        splitBy = "," />
+            <field column="product_element_obligation_flag_list"               
 name="product_element_obligation_flag_list"                splitBy = "," />
+            <field column="product_element_scope_list"                         
 name="product_element_scope_list"                          splitBy = "," />
+            <field column="product_element_dd_version_list"                    
 name="product_element_dd_version_list"                     splitBy = "," />
+            <field column="product_element_dd_type_list"                       
 name="product_element_dd_type_list"                        splitBy = "," />
+            <field column="product_element_dd_description_list"                
 name="product_element_dd_description_list"                 splitBy = "," />
+            <field column="product_element_dd_scope_list"                      
 name="product_element_dd_scope_list"                       splitBy = "," />
+            <field column="product_element_dd_long_name_list"                  
 name="product_element_dd_long_name_list"                   splitBy = "," />
+            <field column="product_element_dd_short_name_list"                 
 name="product_element_dd_short_name_list"                  splitBy = "," />
+            <field column="product_element_dd_max_length_list"                 
 name="product_element_element_dd_max_length_list"          splitBy = "," />
+
+            <field column="product_datetime_version_list"                      
 name="product_datetime_version_list"                       splitBy = "," />
+            <field column="product_datetime_value_list"                        
 name="product_datetime_value_list"                         splitBy = "," />
+            <field column="product_datetime_value_string_list"                 
 name="product_datetime_value_string_list"                  splitBy = "," />
+
+            <field column="product_character_version_list"                     
 name="product_character_verison_list"                      splitBy = "," />
+            <field column="product_character_value_list"                       
 name="product_character_value_list"                        splitBy = "," />
+
+            <field column="product_integer_version_list"                       
 name="product_integer_version_list"                        splitBy = "," />
+            <field column="product_integer_value_list"                         
 name="product_integer_value_list"                          splitBy = "," />
+            <field column="product_integer_units_list"                         
 name="product_integer_units_list"                          splitBy = "," />
+
+            <field column="product_real_version_list"                          
 name="product_real_version_list"                           splitBy = "," />
+            <field column="product_real_value_list"                            
 name="product_real_value_list"                             splitBy = "," />
+            <field column="product_real_units_list"                            
 name="product_real_units_list"                             splitBy = "," />  
+
+        </entity>
+
+    </document>
+
+</dataConfig>

http://git-wip-us.apache.org/repos/asf/incubator-sdap-edge/blob/53351bf3/src/main/solr/product/conf/dataimport.properties
----------------------------------------------------------------------
diff --git a/src/main/solr/product/conf/dataimport.properties 
b/src/main/solr/product/conf/dataimport.properties
new file mode 100644
index 0000000..849fdd7
--- /dev/null
+++ b/src/main/solr/product/conf/dataimport.properties
@@ -0,0 +1,3 @@
+#Thu Nov 05 22:31:01 UTC 2015
+last_index_time=2015-11-05 22\:28\:55
+product.last_index_time=2015-11-05 22\:28\:55

Reply via email to