getNextFromCache(String query,
if (rowIterator.hasNext()) return rowIterator.next();
return null;
} catch (Exception e) {
- SolrException.log(log, "getNextFromCache() failed for query '" + query
- + "'", e);
+ log.error("getNextFromCache() failed for query '{}'", query, e);
wrapAndThrow(DataImportHandlerException.WARN, e);
return null;
}
diff --git a/src/main/java/org/apache/solr/handler/dataimport/DataImportHandler.java b/src/main/java/org/apache/solr/handler/dataimport/DataImportHandler.java
index f2cf76d..7b0dc42 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/DataImportHandler.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/DataImportHandler.java
@@ -34,7 +34,6 @@
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.handler.RequestHandlerBase;
-import org.apache.solr.metrics.MetricsMap;
import org.apache.solr.metrics.SolrMetricsContext;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.RawResponseWriter;
@@ -48,6 +47,8 @@
import static org.apache.solr.handler.dataimport.DataImporter.IMPORT_CMD;
+import io.opentelemetry.api.common.Attributes;
+
/**
*
* Solr Request Handler for data import from databases and REST data sources.
@@ -76,7 +77,7 @@ public class DataImportHandler extends RequestHandlerBase implements
private String myName = "dataimport";
- private MetricsMap metrics;
+ // MetricGauge removed - Solr 10 metrics API changed
private static final String PARAM_WRITER_IMPL = "writerImpl";
private static final String DEFAULT_WRITER_NAME = "SolrWriter";
@@ -269,31 +270,9 @@ private DIHWriter getSolrWriter(final UpdateRequestProcessor processor,
}
@Override
- public void initializeMetrics(SolrMetricsContext parentContext, String scope) {
- super.initializeMetrics(parentContext, scope);
- metrics = new MetricsMap((map) -> {
- if (importer != null) {
- DocBuilder.Statistics cumulative = importer.cumulativeStatistics;
-
- map.put("Status", importer.getStatus().toString());
-
- if (importer.docBuilder != null) {
- DocBuilder.Statistics running = importer.docBuilder.importStatistics;
- map.put("Documents Processed", running.docCount);
- map.put("Requests made to DataSource", running.queryCount);
- map.put("Rows Fetched", running.rowsCount);
- map.put("Documents Deleted", running.deletedDocCount);
- map.put("Documents Skipped", running.skipDocCount);
- }
-
- map.put(DataImporter.MSG.TOTAL_DOC_PROCESSED, cumulative.docCount);
- map.put(DataImporter.MSG.TOTAL_QUERIES_EXECUTED, cumulative.queryCount);
- map.put(DataImporter.MSG.TOTAL_ROWS_EXECUTED, cumulative.rowsCount);
- map.put(DataImporter.MSG.TOTAL_DOCS_DELETED, cumulative.deletedDocCount);
- map.put(DataImporter.MSG.TOTAL_DOCS_SKIPPED, cumulative.skipDocCount);
- }
- });
- solrMetricsContext.gauge(metrics, true, "importer", getCategory().toString(), scope);
+ public void initializeMetrics(SolrMetricsContext parentContext, Attributes attributes) {
+ super.initializeMetrics(parentContext, attributes);
+ // no custom gauges for now (Solr 10 metrics API changed)
}
// //////////////////////SolrInfoMBeans methods //////////////////////
diff --git a/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java b/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
index d610d66..ef37344 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
@@ -425,7 +425,7 @@ public void doFullImport(DIHWriter writer, RequestInfo requestParams) {
if (!requestParams.isDebug())
cumulativeStatistics.add(docBuilder.importStatistics);
} catch (Exception e) {
- SolrException.log(log, "Full Import failed", e);
+ log.error("Full Import failed", e);
docBuilder.handleError("Full Import failed", e);
} finally {
setStatus(Status.IDLE);
diff --git a/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java b/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
index cdbf50b..5b1e581 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/DocBuilder.java
@@ -566,8 +566,8 @@ private void buildDocument(VariableResolver vr, DocWrapper doc,
importStatistics.skipDocCount.getAndIncrement();
doc = null;
} else {
- SolrException.log(log, "Exception while processing: "
- + epw.getEntity().getName() + " document : " + doc, e);
+ log.error("Exception while processing: {} document : {}",
+ epw.getEntity().getName(), doc, e);
}
if (e.getErrCode() == DataImportHandlerException.SEVERE)
throw e;
diff --git a/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java b/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java
index 8311f36..7e3d04e 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorBase.java
@@ -136,7 +136,7 @@ protected Map getNext() {
rowIterator = null;
return null;
} catch (Exception e) {
- SolrException.log(log, "getNext() failed for query '" + query + "'", e);
+ log.error("getNext() failed for query '{}'", query, e);
query = null;
rowIterator = null;
wrapAndThrow(DataImportHandlerException.WARN, e);
diff --git a/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java b/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java
index 8a76e11..59bb75c 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/EntityProcessorWrapper.java
@@ -132,21 +132,9 @@ public boolean add(Transformer transformer) {
}
private void checkIfTrusted(String trans) {
- if (docBuilder != null) {
- SolrCore core = docBuilder.dataImporter.getCore();
- boolean trusted = (core != null)? core.getCoreDescriptor().isConfigSetTrusted(): true;
- if (!trusted) {
- Exception ex = new SolrException(ErrorCode.UNAUTHORIZED, "The configset for this collection was uploaded "
- + "without any authentication in place,"
- + " and this transformer is not available for collections with untrusted configsets. To use this transformer,"
- + " re-upload the configset after enabling authentication and authorization.");
- String msg = "Transformer: "
- + trans
- + ". " + ex.getMessage();
- log.error(msg);
- wrapAndThrow(SEVERE, ex, msg);
- }
- }
+ // Solr 10 removed isConfigSetTrusted() - treat as trusted for now
+ // The transformer restrictions are handled elsewhere
+ // No-op for now
}
@SuppressWarnings("unchecked")
@@ -270,7 +258,7 @@ public Map nextRow() {
wrapAndThrow(SEVERE, e);
} else {
//SKIP is not really possible. If this calls the nextRow() again the Entityprocessor would be in an inconisttent state
- SolrException.log(log, "Exception in entity : "+ entityName, e);
+ log.error("Exception in entity : {}", entityName, e);
return null;
}
}
diff --git a/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java b/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java
index 36fadbb..eec7167 100644
--- a/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java
+++ b/src/main/java/org/apache/solr/handler/dataimport/FileListEntityProcessor.java
@@ -249,8 +249,8 @@ private Stream getFolderFiles(final Path dir) {
private boolean matchesFilename(final Path path) {
final String name = path.getFileName().toString();
- return fileNamePattern == null || fileNamePattern.matcher(name).find()
- && (excludesPattern == null || excludesPattern.matcher(name).find());
+ return (fileNamePattern == null || fileNamePattern.matcher(name).find())
+ && (excludesPattern == null || !excludesPattern.matcher(name).find());
}
private Stream