Author: mattmann
Date: Sun Feb 15 17:24:43 2015
New Revision: 1659951
URL: http://svn.apache.org/r1659951
Log:
Fix for OODT-809 A CrawlerAction that indexes to Solr
Added:
oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/action/SolrIndexingAction.java
Added:
oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/action/SolrIndexingAction.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/action/SolrIndexingAction.java?rev=1659951&view=auto
==============================================================================
---
oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/action/SolrIndexingAction.java
(added)
+++
oodt/trunk/crawler/src/main/java/org/apache/oodt/cas/crawl/action/SolrIndexingAction.java
Sun Feb 15 17:24:43 2015
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.oodt.cas.crawl.action;
+
+// JDK imports
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+
+//OODT imports
+import org.apache.oodt.cas.crawl.action.CrawlerAction;
+import org.apache.oodt.cas.crawl.structs.exceptions.CrawlerActionException;
+import org.apache.oodt.cas.filemgr.tools.SolrIndexer;
+import org.apache.oodt.cas.metadata.Metadata;
+
+/**
+ * Crawler action that ingests the product metadata into the configured Solr
index.
+ *
+ */
+public class SolrIndexingAction extends CrawlerAction {
+
+ // URL of Solr instance with default value.
+ private String solrUrl = "http://localhost:8983/solr";
+
+ // URL of File Manager instance with default value
+ private String fileManagerUrl = "http://localhost:9000/";
+
+ // environment variables (containing location of indexer.properties)
+ private Map<String, String> env = new HashMap<String,String>();
+
+ // service responsible for metadata migration
+ private SolrIndexer solrIndexer = null;
+
+ @Override
+ public boolean performAction(File product, Metadata productMetadata)
throws CrawlerActionException {
+
+ try {
+
+ String productName =
productMetadata.getMetadata("ProductName");
+ LOG.log(Level.INFO, "Indexing product: "+productName+ "
from File Manager catalog: "+fileManagerUrl+" into Solr index: "+solrUrl);
+ solrIndexer.indexProductByName(productName, true); //
delete=true
+ solrIndexer.commit(); // must commit:w
+ return true; // success
+
+ } catch(Exception e) {
+ throw new CrawlerActionException(e);
+ }
+
+ }
+
+ /**
+ * Initialization method configures the SolrIndexer.
+ */
+ public void init() throws InstantiationException {
+
+ // set environment from bean configuration
+ // (including indexer.properties)
+ for (String s : env.keySet()) {
+ System.setProperty(s, env.get(s));
+ }
+
+ // instantiate indexing service
+ solrIndexer = new SolrIndexer(solrUrl, fileManagerUrl);
+
+ }
+
+ public void setSolrUrl(String solrUrl) {
+ this.solrUrl = solrUrl;
+ }
+
+ public void setFileManagerUrl(String fileManagerUrl) {
+ this.fileManagerUrl = fileManagerUrl;
+ }
+
+ public void setEnv(Map<String, String> env) {
+ this.env = env;
+ }
+
+}