You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2015/10/13 17:39:01 UTC
[1/9] oodt git commit: OODT-887 fix the remaning blockers
Repository: oodt
Updated Branches:
refs/heads/master 944f662bd -> 3903325ce
OODT-887 fix the remaning blockers
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/ef02b60c
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/ef02b60c
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/ef02b60c
Branch: refs/heads/master
Commit: ef02b60cf22bb026ed7c304ca6587b2163ac0b4d
Parents: 06b5dec
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 13:50:22 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 13:50:22 2015 +0100
----------------------------------------------------------------------
.../cas/pushpull/protocol/ProtocolHandler.java | 85 +++++++++++---------
1 file changed, 47 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/ef02b60c/pushpull/src/main/java/org/apache/oodt/cas/pushpull/protocol/ProtocolHandler.java
----------------------------------------------------------------------
diff --git a/pushpull/src/main/java/org/apache/oodt/cas/pushpull/protocol/ProtocolHandler.java b/pushpull/src/main/java/org/apache/oodt/cas/pushpull/protocol/ProtocolHandler.java
index e572ee3..b8f3b61 100644
--- a/pushpull/src/main/java/org/apache/oodt/cas/pushpull/protocol/ProtocolHandler.java
+++ b/pushpull/src/main/java/org/apache/oodt/cas/pushpull/protocol/ProtocolHandler.java
@@ -129,49 +129,58 @@ public class ProtocolHandler {
public Protocol getAppropriateProtocolBySite(RemoteSite remoteSite,
boolean allowReuse) throws ProtocolException {
Protocol protocol = null;
- if ((allowReuse && ((protocol = reuseProtocols.get(remoteSite.getURL())) == null))
- || !allowReuse) {
- ProtocolFactory protocolFactory = this.urlAndProtocolFactory
- .get(remoteSite.getURL());
- if (protocolFactory == null) {
- LinkedList<Class<ProtocolFactory>> protocolClasses = pi
- .getProtocolClassesForProtocolType(remoteSite.getURL()
- .getProtocol());
- for (Class<ProtocolFactory> clazz : protocolClasses) {
- try {
- if ((protocol = (protocolFactory = clazz.newInstance())
- .newInstance()) != null) {
- if (!connect(protocol, remoteSite, true)) {
- LOG.log(
- Level.WARNING,
- "ProtocolFactory "
- + protocolFactory.getClass().getCanonicalName()
- + " is not compatible with server at "
- + remoteSite.getURL());
- protocol = null;
- } else {
- this.urlAndProtocolFactory.put(remoteSite.getURL().toURI(),
- protocolFactory);
- break;
+ try {
+ if ((allowReuse && ((protocol = reuseProtocols.get(remoteSite.getURL().toURI())) == null))
+ || !allowReuse) {
+ ProtocolFactory protocolFactory = null;
+ try {
+ protocolFactory = this.urlAndProtocolFactory
+ .get(remoteSite.getURL().toURI());
+ } catch (URISyntaxException e) {
+ LOG.log(Level.SEVERE, "could not convert url to uri: Message: " + e.getMessage());
+ }
+ if (protocolFactory == null) {
+ LinkedList<Class<ProtocolFactory>> protocolClasses = pi
+ .getProtocolClassesForProtocolType(remoteSite.getURL()
+ .getProtocol());
+ for (Class<ProtocolFactory> clazz : protocolClasses) {
+ try {
+ if ((protocol = (protocolFactory = clazz.newInstance())
+ .newInstance()) != null) {
+ if (!connect(protocol, remoteSite, true)) {
+ LOG.log(
+ Level.WARNING,
+ "ProtocolFactory "
+ + protocolFactory.getClass().getCanonicalName()
+ + " is not compatible with server at "
+ + remoteSite.getURL());
+ protocol = null;
+ } else {
+ this.urlAndProtocolFactory.put(remoteSite.getURL().toURI(),
+ protocolFactory);
+ break;
+ }
}
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Failed to instanciate protocol " + clazz
+ + " for " + remoteSite.getURL());
}
- } catch (Exception e) {
- LOG.log(Level.WARNING, "Failed to instanciate protocol " + clazz
- + " for " + remoteSite.getURL());
}
+ if (protocol == null)
+ throw new ProtocolException("Failed to get appropriate protocol for "
+ + remoteSite);
+ } else {
+ connect(protocol = protocolFactory.newInstance(), remoteSite, false);
}
- if (protocol == null)
- throw new ProtocolException("Failed to get appropriate protocol for "
- + remoteSite);
- } else {
- connect(protocol = protocolFactory.newInstance(), remoteSite, false);
+ if (allowReuse)
+ try {
+ this.reuseProtocols.put(remoteSite.getURL().toURI(), protocol);
+ } catch (URISyntaxException e) {
+ LOG.log(Level.SEVERE, "Couildn't covert URL to URI Mesage: " + e.getMessage());
+ }
}
- if (allowReuse)
- try {
- this.reuseProtocols.put(remoteSite.getURL().toURI(), protocol);
- } catch (URISyntaxException e) {
- LOG.log(Level.SEVERE, "Couildn't covert URL to URI Mesage: " + e.getMessage());
- }
+ } catch (URISyntaxException e) {
+ LOG.log(Level.SEVERE, "could not convert url to uri: Message: "+e.getMessage());
}
return protocol;
}
[8/9] oodt git commit: OODT-889 Fix topN
Posted by ma...@apache.org.
OODT-889 Fix topN
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/2a172a06
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/2a172a06
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/2a172a06
Branch: refs/heads/master
Commit: 2a172a06d3e0a716f7bf9fd22d00785658940ee9
Parents: d757222
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue Oct 13 16:19:40 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue Oct 13 16:19:40 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java | 7 ++++++-
2 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/2a172a06/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b339ec3..b3ca821 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -14,6 +14,7 @@ Release 0.11 - Current Development
* OODT-888 Replace += with StringBuilders to improve performance (magicaltrout)
+* OODT-889 Fix TopN with Type
Release 0.10 - 08/30/2015
* OODT-871 Issues with OODT 0.10 RC#1 (lewismc, mattmann)
http://git-wip-us.apache.org/repos/asf/oodt/blob/2a172a06/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
index 98e0eb5..c91060e 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
@@ -728,7 +728,12 @@ public class LuceneCatalog implements Catalog {
for (int pageNum = 1; pageNum < numPages + 1; pageNum++) {
List<Product> pageProducts = paginateQuery(query, type, pageNum, null);
- products.addAll(pageProducts);
+ if(n<=pageProducts.size()) {
+ products.addAll(pageProducts.subList(0, n));
+ }
+ else{
+ products.addAll(pageProducts);
+ }
}
return products;
[6/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
Posted by ma...@apache.org.
OODT-888 replace =+ with StringBuilder to improve concat performance
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/4286c92a
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/4286c92a
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/4286c92a
Branch: refs/heads/master
Commit: 4286c92a1329319c6ab0d317523c85bb1e924c15
Parents: 631cd23
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 16:32:43 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 16:32:43 2015 +0100
----------------------------------------------------------------------
.../view/prompts/QueryBuilderPrompt.java | 39 ++--
.../cas/filemgr/catalog/DataSourceCatalog.java | 223 +++++++++----------
2 files changed, 122 insertions(+), 140 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/4286c92a/app/fmbrowser/src/main/java/org/apache/oodt/cas/filemgr/browser/view/prompts/QueryBuilderPrompt.java
----------------------------------------------------------------------
diff --git a/app/fmbrowser/src/main/java/org/apache/oodt/cas/filemgr/browser/view/prompts/QueryBuilderPrompt.java b/app/fmbrowser/src/main/java/org/apache/oodt/cas/filemgr/browser/view/prompts/QueryBuilderPrompt.java
index 5204db5..b030ee6 100644
--- a/app/fmbrowser/src/main/java/org/apache/oodt/cas/filemgr/browser/view/prompts/QueryBuilderPrompt.java
+++ b/app/fmbrowser/src/main/java/org/apache/oodt/cas/filemgr/browser/view/prompts/QueryBuilderPrompt.java
@@ -17,35 +17,22 @@
package org.apache.oodt.cas.filemgr.browser.view.prompts;
+import org.apache.oodt.cas.filemgr.browser.controller.WindowListener;
+import org.apache.oodt.cas.filemgr.browser.model.CasDB;
import org.apache.oodt.cas.filemgr.structs.RangeQueryCriteria;
import org.apache.oodt.cas.filemgr.structs.TermQueryCriteria;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
-import java.awt.Dimension;
-import java.awt.Font;
+import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
-import javax.swing.BoxLayout;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.JTextField;
+import javax.swing.*;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
-import org.apache.oodt.cas.filemgr.browser.controller.WindowListener;
-import org.apache.oodt.cas.filemgr.browser.model.CasDB;
-
public class QueryBuilderPrompt extends JFrame {
protected CasDB database;
@@ -292,22 +279,22 @@ public class QueryBuilderPrompt extends JFrame {
}
public String getQuery() {
- String q = new String();
+ StringBuilder q = new StringBuilder();
for (int i = 0; i < this.getComponentCount(); i++) {
Component c = this.getComponent(i);
if (c instanceof TermQueryPanel) {
- q += ((TermQueryPanel) c).getOp() + " ";
- q += ((TermQueryPanel) c).getElement() + ":";
- q += ((TermQueryPanel) c).getText() + " ";
+ q.append(((TermQueryPanel) c).getOp()).append(" ");
+ q.append(((TermQueryPanel) c).getElement()).append(":");
+ q.append(((TermQueryPanel) c).getText()).append(" ");
} else if (c instanceof RangeQueryPanel) {
- q += ((RangeQueryPanel) c).getOp() + " ";
- q += ((RangeQueryPanel) c).getElement() + ":[";
- q += ((RangeQueryPanel) c).getStart() + " TO ";
- q += ((RangeQueryPanel) c).getStop() + "] ";
+ q.append(((RangeQueryPanel) c).getOp()).append(" ");
+ q.append(((RangeQueryPanel) c).getElement()).append(":[");
+ q.append(((RangeQueryPanel) c).getStart()).append(" TO ");
+ q.append(((RangeQueryPanel) c).getStop()).append("] ");
}
}
- return q;
+ return q.toString();
}
public org.apache.oodt.cas.filemgr.structs.Query getCasQuery() {
http://git-wip-us.apache.org/repos/asf/oodt/blob/4286c92a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/DataSourceCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/DataSourceCatalog.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/DataSourceCatalog.java
index 155e263..5a01e1f 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/DataSourceCatalog.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/DataSourceCatalog.java
@@ -828,15 +828,15 @@ public class DataSourceCatalog implements Catalog {
conn = dataSource.getConnection();
statement = conn.createStatement();
- String getProductRefSql = "SELECT * FROM "
+ StringBuilder getProductRefSql = new StringBuilder("SELECT * FROM "
+ product.getProductType().getName() + "_reference"
- + " WHERE product_id = " + quoteIt(product.getProductId());
+ + " WHERE product_id = " + quoteIt(product.getProductId()));
- if(this.orderedValues) getProductRefSql += " ORDER BY pkey";
+ if(this.orderedValues) getProductRefSql.append(" ORDER BY pkey");
LOG.log(Level.FINE, "getProductReferences: Executing: "
+ getProductRefSql);
- rs = statement.executeQuery(getProductRefSql);
+ rs = statement.executeQuery(getProductRefSql.toString());
references = new Vector<Reference>();
while (rs.next()) {
@@ -1067,14 +1067,14 @@ public class DataSourceCatalog implements Catalog {
conn = dataSource.getConnection();
statement = conn.createStatement();
- String metadataSql = "SELECT * FROM "
+ StringBuilder metadataSql = new StringBuilder("SELECT * FROM "
+ product.getProductType().getName() + "_metadata"
- + " WHERE product_id = " + quoteIt(product.getProductId());
+ + " WHERE product_id = " + quoteIt(product.getProductId()));
- if(this.orderedValues) metadataSql += " ORDER BY pkey";
+ if(this.orderedValues) metadataSql.append(" ORDER BY pkey");
LOG.log(Level.FINE, "getMetadata: Executing: " + metadataSql);
- rs = statement.executeQuery(metadataSql);
+ rs = statement.executeQuery(metadataSql.toString());
m = new Metadata();
List<Element> elements = null;
@@ -1153,20 +1153,23 @@ public class DataSourceCatalog implements Catalog {
conn = dataSource.getConnection();
statement = conn.createStatement();
- String elementIds = "";
+ StringBuilder elementIds = new StringBuilder("");
if (elems.size() > 0) {
- elementIds += " AND (element_id = '" + this.validationLayer.getElementByName(elems.get(0)).getElementId() + "'";
+ elementIds.append(" AND (element_id = '")
+ .append(this.validationLayer.getElementByName(elems.get(0)).getElementId
+ ()).append("'");
for (int i = 1; i < elems.size(); i++)
- elementIds += " OR element_id = '" + this.validationLayer.getElementByName(elems.get(i)).getElementId() + "'";
- elementIds += ")";
+ elementIds.append(" OR element_id = '").append(this.validationLayer.getElementByName(elems.get(i))
+ .getElementId()).append("'");
+ elementIds.append(")");
}
- String metadataSql = "SELECT element_id,metadata_value FROM "
+ StringBuilder metadataSql = new StringBuilder("SELECT element_id,metadata_value FROM "
+ product.getProductType().getName() + "_metadata"
- + " WHERE product_id = " + quoteIt(product.getProductId()) + elementIds;
- if(this.orderedValues) metadataSql += " ORDER BY pkey";
+ + " WHERE product_id = " + quoteIt(product.getProductId()) + elementIds);
+ if(this.orderedValues) metadataSql.append(" ORDER BY pkey");
LOG.log(Level.FINE, "getMetadata: Executing: " + metadataSql);
- rs = statement.executeQuery(metadataSql);
+ rs = statement.executeQuery(metadataSql.toString());
m = new Metadata();
List<Element> elements = null;
@@ -1274,24 +1277,24 @@ public class DataSourceCatalog implements Catalog {
statement = conn.createStatement();
statement.setMaxRows(n);
- String getProductSql = "SELECT products.* " + "FROM products ";
+ StringBuilder getProductSql = new StringBuilder("SELECT products.* " + "FROM products ");
if (type != null && type.getProductTypeId() != null) {
if (fieldIdStringFlag) {
- getProductSql += "WHERE products.product_type_id = '"
- + type.getProductTypeId() + "' ";
+ getProductSql.append("WHERE products.product_type_id = '").append(type.getProductTypeId())
+ .append("' ");
} else {
- getProductSql += "WHERE products.product_type_id = "
- + type.getProductTypeId() + " ";
+ getProductSql.append("WHERE products.product_type_id = ").append(type.getProductTypeId())
+ .append(" ");
}
}
- getProductSql += "ORDER BY products.product_id DESC";
+ getProductSql.append("ORDER BY products.product_id DESC");
- LOG.log(Level.FINE, "getTopNProducts: executing: " + getProductSql);
+ LOG.log(Level.FINE, "getTopNProducts: executing: " + getProductSql.toString());
- rs = statement.executeQuery(getProductSql);
+ rs = statement.executeQuery(getProductSql.toString());
products = new Vector<Product>();
while (rs.next()) {
@@ -1374,23 +1377,21 @@ public class DataSourceCatalog implements Catalog {
statement = conn.createStatement();
// build up the sql statement
- StringBuffer insertClauseSql = new StringBuffer();
- StringBuffer valueClauseSql = new StringBuffer();
+ StringBuilder valueClauseSql = new StringBuilder();
- insertClauseSql.append("INSERT INTO " + metadataTable
- + " (product_id, element_id, metadata_value) ");
- valueClauseSql.append("VALUES ");
+ valueClauseSql.append("VALUES ");
// now do the value clause
if (fieldIdStringFlag) {
- valueClauseSql.append("(" + product.getProductId() + ", '"
- + element.getElementId() + "', '" + value + "')");
+ valueClauseSql.append("(").append(product.getProductId()).append(", '").append(element.getElementId())
+ .append("', '").append(value).append("')");
} else {
- valueClauseSql.append("(" + product.getProductId() + ", "
- + element.getElementId() + ", '" + value + "')");
+ valueClauseSql.append("(").append(product.getProductId()).append(", ").append(element.getElementId())
+ .append(", '").append(value).append("')");
}
- String metaIngestSql = insertClauseSql.toString()
+ String metaIngestSql = ("INSERT INTO " + metadataTable
+ + " (product_id, element_id, metadata_value) ")
+ valueClauseSql.toString();
LOG
.log(Level.FINE, "addMetadataValue: Executing: "
@@ -1445,24 +1446,20 @@ public class DataSourceCatalog implements Catalog {
statement = conn.createStatement();
// build up the sql statement
- String metRemoveSql = "DELETE FROM " + metadataTable + " WHERE ";
+ StringBuilder metRemoveSql = new StringBuilder("DELETE FROM " + metadataTable + " WHERE ");
if (fieldIdStringFlag) {
- metRemoveSql += "PRODUCT_ID = '" + product.getProductId()
- + "' AND ";
- metRemoveSql += "ELEMENT_ID = '" + element.getElementId()
- + "' AND ";
- metRemoveSql += "METADATA_VALUE = '" + value + "'";
+ metRemoveSql.append("PRODUCT_ID = '").append(product.getProductId()).append("' AND ");
+ metRemoveSql.append("ELEMENT_ID = '").append(element.getElementId()).append("' AND ");
+ metRemoveSql.append("METADATA_VALUE = '").append(value).append("'");
} else {
- metRemoveSql += "PRODUCT_ID = " + product.getProductId()
- + " AND ";
- metRemoveSql += "ELEMENT_ID = " + element.getElementId()
- + " AND ";
- metRemoveSql += "METADATA_VALUE = " + value;
+ metRemoveSql.append("PRODUCT_ID = ").append(product.getProductId()).append(" AND ");
+ metRemoveSql.append("ELEMENT_ID = ").append(element.getElementId()).append(" AND ");
+ metRemoveSql.append("METADATA_VALUE = ").append(value);
}
LOG.log(Level.FINE, "removeMetadataValue: Executing: "
+ metRemoveSql);
- statement.execute(metRemoveSql);
+ statement.execute(metRemoveSql.toString());
conn.commit();
} catch (Exception e) {
e.printStackTrace();
@@ -1516,20 +1513,18 @@ public class DataSourceCatalog implements Catalog {
conn.setAutoCommit(false);
statement = conn.createStatement();
- String getProductSql = "SELECT COUNT(products.product_id) AS numProducts "
- + "FROM products ";
+ StringBuilder getProductSql = new StringBuilder("SELECT COUNT(products.product_id) AS numProducts "
+ + "FROM products ");
if (fieldIdStringFlag) {
- getProductSql += "WHERE products.product_type_id = '"
- + type.getProductTypeId() + "' ";
+ getProductSql.append("WHERE products.product_type_id = '").append(type.getProductTypeId()).append("' ");
} else {
- getProductSql += "WHERE products.product_type_id = "
- + type.getProductTypeId() + " ";
+ getProductSql.append("WHERE products.product_type_id = ").append(type.getProductTypeId()).append(" ");
}
- LOG.log(Level.FINE, "getNumProducts: executing: " + getProductSql);
+ LOG.log(Level.FINE, "getNumProducts: executing: " + getProductSql.toString());
- rs = statement.executeQuery(getProductSql);
+ rs = statement.executeQuery(getProductSql.toString());
while (rs.next()) {
numProducts = rs.getInt("numProducts");
@@ -1726,15 +1721,15 @@ public class DataSourceCatalog implements Catalog {
conn = dataSource.getConnection();
statement = conn.createStatement();
- String getProductSql = "";
+ StringBuilder getProductSql = new StringBuilder("");
String tableName = type.getName() + "_metadata";
String subSelectQueryBase = "SELECT product_id FROM " + tableName
+ " ";
- StringBuffer selectClause = new StringBuffer(
+ StringBuilder selectClause = new StringBuilder(
"SELECT COUNT(DISTINCT p.product_id) AS numResults ");
- StringBuffer fromClause = new StringBuffer("FROM " + tableName
+ StringBuilder fromClause = new StringBuilder("FROM " + tableName
+ " p ");
- StringBuffer whereClause = new StringBuffer("WHERE ");
+ StringBuilder whereClause = new StringBuilder("WHERE ");
boolean gotFirstClause = false;
int clauseNum = 0;
@@ -1752,14 +1747,13 @@ public class DataSourceCatalog implements Catalog {
elementIdStr = this.validationLayer.getElementByName(criteria.getElementName()).getElementId();
}
- String clause = null;
+ StringBuilder clause = new StringBuilder();
if (!gotFirstClause) {
- clause = "(p.element_id = " + elementIdStr + " AND ";
+ clause.append("(p.element_id = ").append(elementIdStr).append(" AND ");
if (criteria instanceof TermQueryCriteria) {
- clause += " metadata_value LIKE '%"
- + ((TermQueryCriteria) criteria).getValue()
- + "%') ";
+ clause.append(" metadata_value LIKE '%").append(((TermQueryCriteria) criteria).getValue())
+ .append("%') ");
} else if (criteria instanceof RangeQueryCriteria) {
String startVal = ((RangeQueryCriteria) criteria)
.getStartValue();
@@ -1770,46 +1764,43 @@ public class DataSourceCatalog implements Catalog {
if ((startVal != null && !startVal.equals(""))
|| (endVal != null && !endVal.equals(""))) {
- clause += " metadata_value ";
+ clause.append(" metadata_value ");
boolean gotStart = false;
if (startVal != null && !startVal.equals("")) {
if (inclusive)
- clause += ">= '" + startVal + "'";
+ clause.append(">= '" + startVal + "'");
else
- clause += "> '" + startVal + "'";
+ clause.append("> '" + startVal + "'");
gotStart = true;
}
if (endVal != null && !endVal.equals("")) {
if (gotStart) {
if (inclusive)
- clause += " AND metadata_value <= '"
- + endVal + "'";
+ clause.append(" AND metadata_value <= '").append(endVal).append("'");
else
- clause += " AND metadata_value < '"
- + endVal + "'";
+ clause.append(" AND metadata_value < '").append(endVal).append("'");
} else if (inclusive)
- clause += "<= '" + endVal + "'";
+ clause.append("<= '").append(endVal).append("'");
else
- clause += "< '" + endVal + "'";
+ clause.append("< '").append(endVal).append("'");
}
- clause += ") ";
+ clause.append(") ");
}
}
whereClause.append(clause);
gotFirstClause = true;
} else {
String subSelectTblName = "p" + clauseNum;
- String subSelectQuery = subSelectQueryBase
+ StringBuilder subSelectQuery = new StringBuilder(subSelectQueryBase
+ "WHERE (element_id = " + elementIdStr
- + " AND ";
+ + " AND ");
if (criteria instanceof TermQueryCriteria) {
- subSelectQuery += " metadata_value LIKE '%"
- + ((TermQueryCriteria) criteria).getValue()
- + "%')";
+ subSelectQuery.append(" metadata_value LIKE '%")
+ .append(((TermQueryCriteria) criteria).getValue()).append("%')");
} else if (criteria instanceof RangeQueryCriteria) {
String startVal = ((RangeQueryCriteria) criteria)
.getStartValue();
@@ -1817,29 +1808,28 @@ public class DataSourceCatalog implements Catalog {
.getEndValue();
if (startVal != null || endVal != null) {
- subSelectQuery += " metadata_value ";
+ subSelectQuery.append(" metadata_value ");
boolean gotStart = false;
if (startVal != null && !startVal.equals("")) {
- subSelectQuery += ">= '" + startVal + "'";
+ subSelectQuery.append(">= '").append(startVal).append("'");
gotStart = true;
}
if (endVal != null && !endVal.equals("")) {
if (gotStart) {
- subSelectQuery += " AND metadata_value <= '"
- + endVal + "'";
+ subSelectQuery.append(" AND metadata_value <= '").append(endVal).append("'");
} else
- subSelectQuery += "<= '" + endVal + "'";
+ subSelectQuery.append("<= '").append(endVal).append("'");
}
- subSelectQuery += ") ";
+ subSelectQuery.append(") ");
}
}
- fromClause.append("INNER JOIN (" + subSelectQuery
+ fromClause.append("INNER JOIN (" + subSelectQuery.toString()
+ ") " + subSelectTblName + " ON "
+ subSelectTblName
+ ".product_id = p.product_id ");
@@ -1848,16 +1838,16 @@ public class DataSourceCatalog implements Catalog {
}
}
- getProductSql = selectClause.toString() + fromClause.toString();
+ getProductSql.append(selectClause.toString() + fromClause.toString());
if (gotFirstClause) {
- getProductSql += whereClause.toString();
+ getProductSql.append(whereClause.toString());
}
LOG.log(Level.FINE, "catalog get num results: executing: "
- + getProductSql);
+ + getProductSql.toString());
- rs = statement.executeQuery(getProductSql);
+ rs = statement.executeQuery(getProductSql.toString());
while (rs.next()) {
resultCount = rs.getInt("numResults");
@@ -2014,36 +2004,38 @@ public class DataSourceCatalog implements Catalog {
statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
- String getProductSql = null;
+ StringBuilder getProductSql = new StringBuilder();
if (!productIdString) {
if (query.getCriteria().size() == 0) {
- getProductSql = "SELECT DISTINCT product_id FROM " + type.getName() + "_metadata";
+ getProductSql.append("SELECT DISTINCT product_id FROM " + type.getName() + "_metadata");
}else if (query.getCriteria().size() == 1) {
- getProductSql = this.getSqlQuery(query.getCriteria().get(0), type);
+ getProductSql.append(this.getSqlQuery(query.getCriteria().get(0), type));
}else {
- getProductSql = this.getSqlQuery(new BooleanQueryCriteria(query.getCriteria(), BooleanQueryCriteria.AND), type);
+ getProductSql.append(this.getSqlQuery(new BooleanQueryCriteria(query.getCriteria(), BooleanQueryCriteria
+ .AND), type));
}
- getProductSql += " ORDER BY product_id DESC ";
+ getProductSql.append(" ORDER BY product_id DESC ");
} else {
if (query.getCriteria().size() == 0) {
- getProductSql = "SELECT DISTINCT products.product_id FROM products, " + type.getName() + "_metadata"
- + " WHERE products.product_id="+type.getName() + "_metadata.product_id";
+ getProductSql.append("SELECT DISTINCT products.product_id FROM products, " + type.getName() + "_metadata"
+ + " WHERE products.product_id="+type.getName() + "_metadata.product_id");
} else if (query.getCriteria().size() == 1) {
- getProductSql = this.getSqlQuery(query.getCriteria().get(0), type);
+ getProductSql.append(this.getSqlQuery(query.getCriteria().get(0), type));
} else {
- getProductSql = this.getSqlQuery(new BooleanQueryCriteria(query.getCriteria(), BooleanQueryCriteria.AND), type);
+ getProductSql.append(this.getSqlQuery(new BooleanQueryCriteria(query.getCriteria(), BooleanQueryCriteria
+ .AND), type));
}
- getProductSql += " ORDER BY products.product_datetime DESC ";
+ getProductSql.append(" ORDER BY products.product_datetime DESC ");
}
- LOG.log(Level.FINE, "catalog query: executing: " + getProductSql);
+ LOG.log(Level.FINE, "catalog query: executing: " + getProductSql.toString());
- rs = statement.executeQuery(getProductSql);
+ rs = statement.executeQuery(getProductSql.toString());
List<String> productIds = new Vector<String>();
if (doSkip) {
@@ -2133,37 +2125,40 @@ public class DataSourceCatalog implements Catalog {
}
protected String getSqlQuery(QueryCriteria queryCriteria, ProductType type) throws ValidationLayerException, CatalogException {
- String sqlQuery = null;
+ StringBuilder sqlQuery = new StringBuilder();
if (queryCriteria instanceof BooleanQueryCriteria) {
BooleanQueryCriteria bqc = (BooleanQueryCriteria) queryCriteria;
if (bqc.getOperator() == BooleanQueryCriteria.NOT) {
if (!this.productIdString) {
- sqlQuery = "SELECT DISTINCT product_id FROM " + type.getName() + "_metadata WHERE product_id NOT IN (" + this.getSqlQuery(bqc.getTerms().get(0), type) + ")";
+ sqlQuery.append("SELECT DISTINCT product_id FROM " + type.getName() + "_metadata WHERE product_id "
+ + "NOT IN (" + this.getSqlQuery(bqc.getTerms().get(0), type) + ")");
} else {
- sqlQuery = "SELECT DISTINCT products.product_id FROM products," + type.getName() + "_metadata"
+ sqlQuery.append("SELECT DISTINCT products.product_id FROM products," + type.getName() + "_metadata"
+ " WHERE products.product_id="+type.getName() + "_metadata.product_id"
- + " AND products.product_id NOT IN (" + this.getSqlQuery(bqc.getTerms().get(0), type) + ")";
+ + " AND products.product_id NOT IN (" + this.getSqlQuery(bqc.getTerms().get
+ (0), type) + ")");
}
}else {
- sqlQuery = "(" + this.getSqlQuery(bqc.getTerms().get(0), type);
+ sqlQuery.append("(" + this.getSqlQuery(bqc.getTerms().get(0), type));
String op = bqc.getOperator() == BooleanQueryCriteria.AND ? "INTERSECT" : "UNION";
for (int i = 1; i < bqc.getTerms().size(); i++)
- sqlQuery += ") " + op + " (" + this.getSqlQuery(bqc.getTerms().get(i), type);
- sqlQuery += ")";
+ sqlQuery.append(") " + op + " (" + this.getSqlQuery(bqc.getTerms().get(i), type));
+ sqlQuery.append(")");
}
}else {
String elementIdStr = this.validationLayer.getElementByName(queryCriteria.getElementName()).getElementId();
if (fieldIdStringFlag)
elementIdStr = "'" + elementIdStr + "'";
if (!this.productIdString) {
- sqlQuery = "SELECT DISTINCT product_id FROM " + type.getName() + "_metadata WHERE element_id = " + elementIdStr + " AND ";
+ sqlQuery.append("SELECT DISTINCT product_id FROM " + type.getName() + "_metadata WHERE element_id = " +
+ elementIdStr + " AND ");
} else {
- sqlQuery = "SELECT DISTINCT products.product_id FROM products," + type.getName() + "_metadata"
+ sqlQuery.append("SELECT DISTINCT products.product_id FROM products," + type.getName() + "_metadata"
+ " WHERE products.product_id="+type.getName() + "_metadata.product_id"
- + " AND element_id = " + elementIdStr + " AND ";
+ + " AND element_id = " + elementIdStr + " AND ");
}
if (queryCriteria instanceof TermQueryCriteria) {
- sqlQuery += "metadata_value = '" + ((TermQueryCriteria) queryCriteria).getValue() + "'";
+ sqlQuery.append("metadata_value = '" + ((TermQueryCriteria) queryCriteria).getValue() + "'");
} else if (queryCriteria instanceof RangeQueryCriteria) {
RangeQueryCriteria rqc = (RangeQueryCriteria) queryCriteria;
String rangeSubQuery = null;
@@ -2175,13 +2170,13 @@ public class DataSourceCatalog implements Catalog {
else
rangeSubQuery = "(" + rangeSubQuery + " AND metadata_value" + (rqc.getInclusive() ? " <= " : " < ") + "'" + rqc.getEndValue() + "')";
}
- sqlQuery += rangeSubQuery;
+ sqlQuery.append(rangeSubQuery);
} else {
throw new CatalogException("Invalid QueryCriteria [" + queryCriteria.getClass().getCanonicalName() + "]");
}
}
- return sqlQuery;
+ return sqlQuery.toString();
}
private synchronized void updateReferences(Product product)
[9/9] oodt git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/oodt
Posted by ma...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/oodt
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/3903325c
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/3903325c
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/3903325c
Branch: refs/heads/master
Commit: 3903325ce448b65d7e2faa69d450186296e701a9
Parents: 2a172a0 944f662
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue Oct 13 16:19:43 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue Oct 13 16:19:43 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 3 ++
.../preconditions/RegExExcludeComparator.java | 49 ++++++++++++++++++++
2 files changed, 52 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/3903325c/CHANGES.txt
----------------------------------------------------------------------
[3/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
Posted by ma...@apache.org.
OODT-888 replace =+ with StringBuilder to improve concat performance
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/616387d9
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/616387d9
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/616387d9
Branch: refs/heads/master
Commit: 616387d94e915ecdc8f64445c938c3bb8112e84c
Parents: e166944
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 14:19:18 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 14:19:18 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/616387d9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 3322d8b..b30b5dd 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -10,7 +10,9 @@ Release 0.11 - Current Development
* OODT-882 Merge dependency update into master (magicaltrout)
-* OODT-887 Prevent DNS resolution on URL Lookup
+* OODT-887 Prevent DNS resolution on URL Lookup (magicaltrout)
+
+* OODT-888 Replace =+ with StringBuilders to improve performance (magicaltrout)
Release 0.10 - 08/30/2015
[2/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
Posted by ma...@apache.org.
OODT-888 replace =+ with StringBuilder to improve concat performance
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/e1669443
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/e1669443
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/e1669443
Branch: refs/heads/master
Commit: e1669443cf8917e3d3a061c0d06f2ec1c55141e4
Parents: ef02b60
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 14:18:24 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 14:18:24 2015 +0100
----------------------------------------------------------------------
.../catalog/query/FreeTextQueryExpression.java | 12 ++++---
.../cas/catalog/query/QueryLogicalGroup.java | 12 ++++---
.../catalog/query/parser/ParseException.java | 34 +++++++++++---------
3 files changed, 32 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/e1669443/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
index 88278fc..12af21c 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
@@ -81,11 +81,13 @@ public class FreeTextQueryExpression extends TermQueryExpression {
* @return The query as a String.
*/
public String toString() {
- String serial = "({" + this.bucketNames + "} " + this.term.getName() + " :|";
- for (String value : this.term.getValues())
- serial += "+" + value;
- serial += "|: )";
- return serial;
+ StringBuilder serial = new StringBuilder();
+ serial.append("({" + this.bucketNames + "} " + this.term.getName() + " :|");
+ for (String value : this.term.getValues()) {
+ serial.append("+" + value);
+ serial.append("|: )");
+ }
+ return serial.toString();
}
@Override
http://git-wip-us.apache.org/repos/asf/oodt/blob/e1669443/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
index 60be735..c6b764b 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
@@ -56,7 +56,7 @@ public class QueryLogicalGroup extends QueryExpression {
/**
*
- * @param queryCriteria
+ * @param queryExpression
*/
public void addExpression(QueryExpression queryExpression) {
this.queryExpressions.add(queryExpression);
@@ -64,7 +64,7 @@ public class QueryLogicalGroup extends QueryExpression {
/**
*
- * @param queryCriterias
+ * @param queryExpressions
*/
public void addExpressions(List<QueryExpression> queryExpressions) {
this.queryExpressions.addAll(queryExpressions);
@@ -96,9 +96,11 @@ public class QueryLogicalGroup extends QueryExpression {
@Override
public String toString() {
- String query = "({" + this.bucketNames + "} " + this.operator + " : ";
- for (QueryExpression queryExpression : this.queryExpressions)
- query += queryExpression.toString() + ",";
+ StringBuilder query = new StringBuilder();
+ query.append("({" + this.bucketNames + "} " + this.operator + " : ");
+ for (QueryExpression queryExpression : this.queryExpressions) {
+ query.append(queryExpression.toString() + ",");
+ }
return query.substring(0, query.length() - 1) + ")";
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/e1669443/catalog/src/main/java/org/apache/oodt/cas/catalog/query/parser/ParseException.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/parser/ParseException.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/parser/ParseException.java
index 983b30e..1b8a696 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/parser/ParseException.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/parser/ParseException.java
@@ -89,7 +89,7 @@ public class ParseException extends Exception {
int[][] expectedTokenSequences,
String[] tokenImage) {
String eol = System.getProperty("line.separator", "\n");
- StringBuffer expected = new StringBuffer();
+ StringBuilder expected = new StringBuilder();
int maxSize = 0;
for (int i = 0; i < expectedTokenSequences.length; i++) {
if (maxSize < expectedTokenSequences[i].length) {
@@ -103,29 +103,31 @@ public class ParseException extends Exception {
}
expected.append(eol).append(" ");
}
- String retval = "Encountered \"";
+ StringBuilder retval = new StringBuilder();
+ retval.append("Encountered \"");
Token tok = currentToken.next;
for (int i = 0; i < maxSize; i++) {
- if (i != 0) retval += " ";
+ if (i != 0) retval.append(" ");
if (tok.kind == 0) {
- retval += tokenImage[0];
+ retval.append(tokenImage[0]);
break;
}
- retval += " " + tokenImage[tok.kind];
- retval += " \"";
- retval += add_escapes(tok.image);
- retval += " \"";
+ retval.append(" ").append(tokenImage[tok.kind]);
+ retval.append(" \"");
+ retval.append(add_escapes(tok.image));
+ retval.append(" \"");
tok = tok.next;
}
- retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
- retval += "." + eol;
+ retval.append("\" at line ").append(currentToken.next.beginLine).append(", column ")
+ .append(currentToken.next.beginColumn);
+ retval.append(".").append(eol);
if (expectedTokenSequences.length == 1) {
- retval += "Was expecting:" + eol + " ";
+ retval.append("Was expecting:").append(eol).append(" ");
} else {
- retval += "Was expecting one of:" + eol + " ";
+ retval.append("Was expecting one of:").append(eol).append(" ");
}
- retval += expected.toString();
- return retval;
+ retval.append(expected.toString());
+ return retval.toString();
}
/**
@@ -139,7 +141,7 @@ public class ParseException extends Exception {
* string literal.
*/
static String add_escapes(String str) {
- StringBuffer retval = new StringBuffer();
+ StringBuilder retval = new StringBuilder();
char ch;
for (int i = 0; i < str.length(); i++) {
switch (str.charAt(i))
@@ -173,7 +175,7 @@ public class ParseException extends Exception {
default:
if ((ch = str.charAt(i)) < 0x20 || ch > 0x7e) {
String s = "0000" + Integer.toString(ch, 16);
- retval.append("\\u" + s.substring(s.length() - 4, s.length()));
+ retval.append("\\u").append(s.substring(s.length() - 4, s.length()));
} else {
retval.append(ch);
}
[4/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
Posted by ma...@apache.org.
OODT-888 replace =+ with StringBuilder to improve concat performance
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/b2227f8a
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/b2227f8a
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/b2227f8a
Branch: refs/heads/master
Commit: b2227f8ab10276a1f66c4ae4ac81901d37405cec
Parents: 616387d
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 14:33:57 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 14:33:57 2015 +0100
----------------------------------------------------------------------
CHANGES.txt | 2 +-
.../struct/impl/index/DataSourceIndex.java | 98 ++++++++++----------
2 files changed, 49 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/b2227f8a/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index b30b5dd..b339ec3 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -12,7 +12,7 @@ Release 0.11 - Current Development
* OODT-887 Prevent DNS resolution on URL Lookup (magicaltrout)
-* OODT-888 Replace =+ with StringBuilders to improve performance (magicaltrout)
+* OODT-888 Replace += with StringBuilders to improve performance (magicaltrout)
Release 0.10 - 08/30/2015
http://git-wip-us.apache.org/repos/asf/oodt/blob/b2227f8a/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/DataSourceIndex.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/DataSourceIndex.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/DataSourceIndex.java
index a046263..e7083ed 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/DataSourceIndex.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/DataSourceIndex.java
@@ -17,26 +17,6 @@
package org.apache.oodt.cas.catalog.struct.impl.index;
//JDK imports
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-//SQL imports
-import javax.sql.DataSource;
-
-//OODT imports
import org.apache.commons.lang.StringUtils;
import org.apache.oodt.cas.catalog.exception.CatalogIndexException;
import org.apache.oodt.cas.catalog.exception.IngestServiceException;
@@ -45,22 +25,26 @@ import org.apache.oodt.cas.catalog.page.IndexPager;
import org.apache.oodt.cas.catalog.page.IngestReceipt;
import org.apache.oodt.cas.catalog.page.PageInfo;
import org.apache.oodt.cas.catalog.page.ProcessedPageInfo;
-import org.apache.oodt.cas.catalog.query.ComparisonQueryExpression;
-import org.apache.oodt.cas.catalog.query.NotQueryExpression;
-import org.apache.oodt.cas.catalog.query.QueryExpression;
-import org.apache.oodt.cas.catalog.query.QueryLogicalGroup;
-import org.apache.oodt.cas.catalog.query.StdQueryExpression;
-import org.apache.oodt.cas.catalog.struct.Index;
-import org.apache.oodt.cas.catalog.struct.IngestService;
-import org.apache.oodt.cas.catalog.struct.QueryService;
-import org.apache.oodt.cas.catalog.struct.TransactionId;
-import org.apache.oodt.cas.catalog.struct.TransactionIdFactory;
+import org.apache.oodt.cas.catalog.query.*;
+import org.apache.oodt.cas.catalog.struct.*;
import org.apache.oodt.cas.catalog.struct.impl.transaction.UuidTransactionIdFactory;
import org.apache.oodt.cas.catalog.term.Term;
import org.apache.oodt.cas.catalog.term.TermBucket;
import org.apache.oodt.commons.database.DatabaseConnectionBuilder;
import org.apache.oodt.commons.date.DateUtils;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.sql.DataSource;
+
/**
*
* DataSource Indexer which supports both ingest and query
@@ -388,9 +372,11 @@ public class DataSourceIndex implements Index, IngestService, QueryService {
try {
conn = this.dataSource.getConnection();
stmt = conn.createStatement();
- String sqlQuery = "SELECT DISTINCT transaction_id,transaction_date FROM transactions WHERE transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
+ String sqlQuery = "SELECT DISTINCT transaction_id,transaction_date FROM transactions "
+ + "WHERE "
+ + "transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
LOG.log(Level.INFO, "Performing Query: " + sqlQuery);
- rs = stmt.executeQuery(sqlQuery);
+ rs = stmt.executeQuery(sqlQuery);
List<IngestReceipt> receipts = new Vector<IngestReceipt>();
while (rs.next())
@@ -418,9 +404,10 @@ public class DataSourceIndex implements Index, IngestService, QueryService {
try {
conn = this.dataSource.getConnection();
stmt = conn.createStatement();
- String sqlQuery = "SELECT DISTINCT transaction_id,transaction_date FROM transactions WHERE transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
+ String sqlQuery = "SELECT DISTINCT transaction_id,transaction_date FROM transactions WHERE "
+ + "transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
LOG.log(Level.INFO, "Performing Query: " + sqlQuery);
- rs = stmt.executeQuery(sqlQuery);
+ rs = stmt.executeQuery(sqlQuery);
List<IngestReceipt> receipts = new Vector<IngestReceipt>();
int index = 0;
@@ -451,9 +438,11 @@ public class DataSourceIndex implements Index, IngestService, QueryService {
try {
conn = this.dataSource.getConnection();
stmt = conn.createStatement();
- String sqlQuery = "SELECT COUNT(transaction_id) AS numTransactions FROM transactions WHERE transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
+ String sqlQuery = "SELECT COUNT(transaction_id) AS numTransactions FROM transactions "
+ + "WHERE "
+ + "transaction_id IN (" + this.getSqlQuery(queryExpression) + ")";
LOG.log(Level.INFO, "Performing Query: " + sqlQuery);
- rs = stmt.executeQuery(sqlQuery);
+ rs = stmt.executeQuery(sqlQuery);
int numTransactions = 0;
while (rs.next())
@@ -477,21 +466,24 @@ public class DataSourceIndex implements Index, IngestService, QueryService {
private String getSqlQuery(QueryExpression queryExpression) throws QueryServiceException, UnsupportedEncodingException {
- String sqlQuery = null;
- String bucketNameFilter = "";
+ StringBuilder sqlQuery = new StringBuilder();
+ StringBuilder bucketNameFilter = new StringBuilder("");
if (queryExpression.getBucketNames() != null) {
if (queryExpression.getBucketNames().size() == 1)
- bucketNameFilter += "bucket_name = '" + queryExpression.getBucketNames().iterator().next() + "' AND ";
+ bucketNameFilter.append("bucket_name = '").append(queryExpression.getBucketNames().iterator().next())
+ .append("' ").append("AND ");
else if (queryExpression.getBucketNames().size() > 1)
- bucketNameFilter += "(bucket_name = '" + StringUtils.join(queryExpression.getBucketNames().iterator(), "' OR bucket_name = '") + "') AND ";
+ bucketNameFilter.append("(bucket_name = '")
+ .append(StringUtils.join(queryExpression.getBucketNames().iterator(),
+ "' OR bucket_name = '")).append("') AND ");
}
if (queryExpression instanceof QueryLogicalGroup) {
QueryLogicalGroup qlg = (QueryLogicalGroup) queryExpression;
- sqlQuery = "(" + this.getSqlQuery(qlg.getExpressions().get(0));
+ sqlQuery.append("(").append(this.getSqlQuery(qlg.getExpressions().get(0)));
String op = qlg.getOperator() == QueryLogicalGroup.Operator.AND ? "INTERSECT" : "UNION";
for (int i = 1; i < qlg.getExpressions().size(); i++)
- sqlQuery += ") " + op + " (" + this.getSqlQuery(qlg.getExpressions().get(i));
- sqlQuery += ")";
+ sqlQuery.append(") ").append(op).append(" (").append(this.getSqlQuery(qlg.getExpressions().get(i)));
+ sqlQuery.append(")");
}else if (queryExpression instanceof ComparisonQueryExpression){
ComparisonQueryExpression cqe = (ComparisonQueryExpression) queryExpression;
String operator = null;
@@ -509,23 +501,29 @@ public class DataSourceIndex implements Index, IngestService, QueryService {
throw new QueryServiceException("Invalid ComparisonQueryExpression Operator '" + cqe.getOperator() + "'");
}
- sqlQuery = "SELECT DISTINCT transaction_id FROM transaction_terms WHERE " + bucketNameFilter + " term_name = '" + cqe.getTerm().getName() + "' AND (";
+ sqlQuery.append("SELECT DISTINCT transaction_id FROM transaction_terms WHERE ")
+ .append(bucketNameFilter.toString()).append(" ").append("term_name = '")
+ .append(cqe.getTerm().getName()).append("' AND (");
for (int i = 0; i < cqe.getTerm().getValues().size(); i++) {
String value = cqe.getTerm().getValues().get(i);
- sqlQuery += "term_value " + operator + " '" + (this.useUTF8 ? URLEncoder.encode(value, "UTF-8") : value) + "'";
+ sqlQuery.append("term_value ").append(operator).append(" '")
+ .append(this.useUTF8 ? URLEncoder.encode(value, "UTF-8") : value).append("'");
if ((i + 1) < cqe.getTerm().getValues().size())
- sqlQuery += " OR ";
+ sqlQuery.append(" OR ");
}
- sqlQuery += ")";
+ sqlQuery.append(")");
}else if (queryExpression instanceof NotQueryExpression) {
NotQueryExpression nqe = (NotQueryExpression) queryExpression;
- sqlQuery = "SELECT DISTINCT transaction_id FROM transaction_terms WHERE " + bucketNameFilter + " NOT (" + this.getSqlQuery(nqe.getQueryExpression()) + ")";
+ sqlQuery.append("SELECT DISTINCT transaction_id FROM transaction_terms WHERE ")
+ .append(bucketNameFilter.toString()).append(" NOT (")
+ .append(this.getSqlQuery(nqe.getQueryExpression())).append(")");
}else if (queryExpression instanceof StdQueryExpression) {
- sqlQuery = "SELECT DISTINCT transaction_id FROM transaction_terms " + bucketNameFilter;
+ sqlQuery.append("SELECT DISTINCT transaction_id FROM transaction_terms ")
+ .append(bucketNameFilter.toString());
}else {
throw new QueryServiceException("Invalid QueryExpression '" + queryExpression.getClass().getCanonicalName() + "'");
}
- return sqlQuery;
+ return sqlQuery.toString();
}
}
[5/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
Posted by ma...@apache.org.
OODT-888 replace =+ with StringBuilder to improve concat performance
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/631cd23c
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/631cd23c
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/631cd23c
Branch: refs/heads/master
Commit: 631cd23cd4bc70e117ad7f22c8d3864f30f09313
Parents: b2227f8
Author: Tom Barber <to...@analytical-labs.com>
Authored: Sat Oct 10 15:53:16 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Sat Oct 10 15:53:16 2015 +0100
----------------------------------------------------------------------
.../index/WorkflowManagerDataSourceIndex.java | 70 +++++++-------
.../oodt/cas/cli/printer/StdCmdLinePrinter.java | 98 +++++++-------------
2 files changed, 69 insertions(+), 99 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/631cd23c/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/WorkflowManagerDataSourceIndex.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/WorkflowManagerDataSourceIndex.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/WorkflowManagerDataSourceIndex.java
index 8c619be..0facced 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/WorkflowManagerDataSourceIndex.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/struct/impl/index/WorkflowManagerDataSourceIndex.java
@@ -17,34 +17,11 @@
package org.apache.oodt.cas.catalog.struct.impl.index;
//JDK imports
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.net.URLEncoder;
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.Statement;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-//SQL imports
-import javax.sql.DataSource;
-
-//OODT imports
import org.apache.oodt.cas.catalog.exception.CatalogIndexException;
import org.apache.oodt.cas.catalog.exception.QueryServiceException;
import org.apache.oodt.cas.catalog.page.IndexPager;
import org.apache.oodt.cas.catalog.page.IngestReceipt;
-import org.apache.oodt.cas.catalog.query.ComparisonQueryExpression;
-import org.apache.oodt.cas.catalog.query.NotQueryExpression;
-import org.apache.oodt.cas.catalog.query.QueryExpression;
-import org.apache.oodt.cas.catalog.query.QueryLogicalGroup;
-import org.apache.oodt.cas.catalog.query.StdQueryExpression;
+import org.apache.oodt.cas.catalog.query.*;
import org.apache.oodt.cas.catalog.struct.Index;
import org.apache.oodt.cas.catalog.struct.QueryService;
import org.apache.oodt.cas.catalog.struct.TransactionId;
@@ -53,9 +30,23 @@ import org.apache.oodt.cas.catalog.struct.impl.transaction.LongTransactionIdFact
import org.apache.oodt.cas.catalog.term.Term;
import org.apache.oodt.cas.catalog.term.TermBucket;
import org.apache.oodt.commons.database.DatabaseConnectionBuilder;
+import org.apache.oodt.commons.util.DateConvert;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.Statement;
+import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.sql.DataSource;
+
+//SQL imports
+//OODT imports
//EDA imports
-import org.apache.oodt.commons.util.DateConvert;
/**
* @author bfoster
@@ -259,17 +250,17 @@ public class WorkflowManagerDataSourceIndex implements Index, QueryService {
}
private String getSqlQuery(QueryExpression queryExpression) throws QueryServiceException, UnsupportedEncodingException {
- String sqlQuery = null;
+ StringBuilder sqlQuery = new StringBuilder();
if (queryExpression instanceof QueryLogicalGroup) {
QueryLogicalGroup qlg = (QueryLogicalGroup) queryExpression;
- sqlQuery = "(" + this.getSqlQuery(qlg.getExpressions().get(0));
+ sqlQuery.append("(").append(this.getSqlQuery(qlg.getExpressions().get(0)));
String op = qlg.getOperator() == QueryLogicalGroup.Operator.AND ? "INTERSECT" : "UNION";
for (int i = 1; i < qlg.getExpressions().size(); i++)
- sqlQuery += ") " + op + " (" + this.getSqlQuery(qlg.getExpressions().get(i));
- sqlQuery += ")";
+ sqlQuery.append(") ").append(op).append(" (").append(this.getSqlQuery(qlg.getExpressions().get(i)));
+ sqlQuery.append(")");
}else if (queryExpression instanceof ComparisonQueryExpression){
ComparisonQueryExpression cqe = (ComparisonQueryExpression) queryExpression;
- String operator = null;
+ String operator;
if (cqe.getOperator().equals(ComparisonQueryExpression.Operator.EQUAL_TO)) {
operator = "=";
} else if (cqe.getOperator().equals(ComparisonQueryExpression.Operator.GREATER_THAN)) {
@@ -284,23 +275,28 @@ public class WorkflowManagerDataSourceIndex implements Index, QueryService {
throw new QueryServiceException("Invalid ComparisonQueryExpression Operator '" + cqe.getOperator() + "'");
}
- sqlQuery = "SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata WHERE workflow_met_key = '" + cqe.getTerm().getName() + "' AND (";
+ sqlQuery.append(
+ "SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata WHERE " + "workflow_met_key = '")
+ .append(cqe.getTerm().getName()).append("' AND (");
for (int i = 0; i < cqe.getTerm().getValues().size(); i++) {
String value = cqe.getTerm().getValues().get(i);
- sqlQuery += "workflow_met_val " + operator + " '" + URLEncoder.encode(value, "UTF-8") + "'";
+ sqlQuery.append("workflow_met_val ").append(operator).append(" '")
+ .append(URLEncoder.encode(value, "UTF-8")).append("'");
if ((i + 1) < cqe.getTerm().getValues().size())
- sqlQuery += "OR";
+ sqlQuery.append("OR");
}
- sqlQuery += ")";
+ sqlQuery.append(")");
}else if (queryExpression instanceof NotQueryExpression) {
NotQueryExpression nqe = (NotQueryExpression) queryExpression;
- sqlQuery = "SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata WHERE NOT (" + this.getSqlQuery(nqe.getQueryExpression()) + ")";
+ sqlQuery.append("SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata WHERE NOT (")
+ .append(this
+ .getSqlQuery(nqe.getQueryExpression())).append(")");
}else if (queryExpression instanceof StdQueryExpression) {
- sqlQuery = "SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata";
+ sqlQuery.append("SELECT DISTINCT workflow_instance_id FROM workflow_instance_metadata");
}else {
throw new QueryServiceException("Invalid QueryExpression '" + queryExpression.getClass().getCanonicalName() + "'");
}
- return sqlQuery;
+ return sqlQuery.toString();
}
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/631cd23c/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java b/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
index 36c3fa1..9ebf32b 100644
--- a/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
+++ b/cli/src/main/java/org/apache/oodt/cas/cli/printer/StdCmdLinePrinter.java
@@ -16,36 +16,19 @@
*/
package org.apache.oodt.cas.cli.printer;
-//OODT static imports
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.asGroupOption;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineOptional;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRelevantSubOptions;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRequired;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.determineRequiredSubOptions;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.getFormattedString;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.isGroupOption;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.sortActions;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.sortOptions;
-import static org.apache.oodt.cas.cli.util.CmdLineUtils.sortOptionsByRequiredStatus;
-
-//JDK imports
-import java.util.List;
-import java.util.Set;
-//Apache imports
-import org.apache.commons.lang.StringUtils;
+import com.google.common.collect.Lists;
-//OODT imports
+import org.apache.commons.lang.StringUtils;
import org.apache.oodt.cas.cli.action.CmdLineAction;
-import org.apache.oodt.cas.cli.option.ActionCmdLineOption;
-import org.apache.oodt.cas.cli.option.AdvancedCmdLineOption;
-import org.apache.oodt.cas.cli.option.CmdLineOption;
-import org.apache.oodt.cas.cli.option.GroupCmdLineOption;
-import org.apache.oodt.cas.cli.option.GroupSubOption;
+import org.apache.oodt.cas.cli.option.*;
import org.apache.oodt.cas.cli.option.validator.CmdLineOptionValidator.Result;
-//Google imports
-import com.google.common.collect.Lists;
+import java.util.List;
+import java.util.Set;
+
+import static org.apache.oodt.cas.cli.util.CmdLineUtils.*;
+
/**
* Standard {@link CmdLinePrinter}.
@@ -57,13 +40,8 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
@Override
public String printActionHelp(CmdLineAction action,
Set<CmdLineOption> options) {
- StringBuffer sb = new StringBuffer("");
- sb.append(getHeader(action)).append("\n");
- sb.append(getDescription(action)).append("\n");
- sb.append(getUsage(action, options)).append("\n");
- sb.append(getExamples(action)).append("\n");
- sb.append(getFooter(action)).append("\n");
- return sb.toString();
+ return "" + getHeader(action) + "\n" + getDescription(action) + "\n" + getUsage(action, options) + "\n"
+ + getExamples(action) + "\n" + getFooter(action) + "\n";
}
protected String getHeader(CmdLineAction action) {
@@ -71,7 +49,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
}
protected String getDescription(CmdLineAction action) {
- StringBuffer sb = new StringBuffer("> DESCRIPTION:\n");
+ StringBuilder sb = new StringBuilder("> DESCRIPTION:\n");
if (action.getDetailedDescription() != null) {
sb.append(" ").append(action.getDetailedDescription()
.replaceAll("^\\s*", "").replaceAll("\\s*$", ""));
@@ -86,7 +64,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
}
protected String getUsage(CmdLineAction action, Set<CmdLineOption> options) {
- StringBuffer sb = new StringBuffer("> USAGE:\n");
+ StringBuilder sb = new StringBuilder("> USAGE:\n");
sb.append(getRequiredSubHeader()).append("\n");
Set<CmdLineOption> requiredOptions = determineRequired(action, options);
List<CmdLineOption> sortedRequiredOptions = sortOptions(requiredOptions);
@@ -130,7 +108,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
}
protected String getExamples(CmdLineAction action) {
- StringBuffer sb = new StringBuffer("> EXAMPLES:\n");
+ StringBuilder sb = new StringBuilder("> EXAMPLES:\n");
if (action.getExamples() != null) {
sb.append(" ").append(action.getExamples().replaceAll("^\\s*", "")
.replaceAll("\\s*$", ""));
@@ -166,42 +144,39 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
protected String getGroupHelp(CmdLineAction action,
GroupCmdLineOption option, String indent) {
- String helpString = getOptionHelp(action, option, indent);
+ StringBuilder helpString = new StringBuilder(getOptionHelp(action, option, indent));
Set<CmdLineOption> subOptions = determineRequiredSubOptions(action,
- (GroupCmdLineOption) option);
+ option);
if (subOptions.isEmpty()) {
if (!option.getSubOptions().isEmpty()) {
- helpString += "\n" + indent + " One of:";
+ helpString.append("\n").append(indent).append(" One of:");
for (GroupSubOption subOption : option.getSubOptions()) {
- helpString += "\n"
- + getOptionHelp(action, subOption.getOption(), " "
- + indent);
+ helpString.append("\n").append(getOptionHelp(action, subOption.getOption(), " "
+ + indent));
}
}
} else {
for (CmdLineOption subOption : determineRelevantSubOptions(action,
option)) {
- helpString += "\n";
+ helpString.append("\n");
if (subOption instanceof GroupCmdLineOption) {
- helpString += getGroupHelp(action,
- (GroupCmdLineOption) subOption, " " + indent);
+ helpString.append(getGroupHelp(action,
+ (GroupCmdLineOption) subOption, " " + indent));
} else {
- helpString += getOptionHelp(action, subOption, " " + indent);
+ helpString.append(getOptionHelp(action, subOption, " " + indent));
}
- helpString += " "
- + (subOptions.contains(subOption) ? "(required)"
- : "(optional)");
+ helpString.append(" ").append(subOptions.contains(subOption) ? "(required)"
+ : "(optional)");
}
}
- return helpString;
+ return helpString.toString();
}
@Override
public String printActionsHelp(Set<CmdLineAction> actions) {
- StringBuffer sb = new StringBuffer("");
+ StringBuilder sb = new StringBuilder("");
sb.append("-----------------------------------------------------------------------------------------------------------------\n");
- sb.append("|" + StringUtils.rightPad(" Action", 35) + "|"
- + " Description\n");
+ sb.append("|").append(StringUtils.rightPad(" Action", 35)).append("|").append(" Description\n");
sb.append("-----------------------------------------------------------------------------------------------------------------\n");
for (CmdLineAction action : sortActions(actions)) {
sb.append(" ").append(StringUtils.rightPad(action.getName(), 35));
@@ -213,7 +188,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
@Override
public String printOptionsHelp(Set<CmdLineOption> options) {
- StringBuffer sb = new StringBuffer("");
+ StringBuilder sb = new StringBuilder("");
List<CmdLineOption> sortedOptions = sortOptionsByRequiredStatus(options);
sb.append(getHeader()).append("\n");
for (CmdLineOption option : sortedOptions) {
@@ -224,12 +199,11 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
}
protected String getHeader() {
- StringBuffer sb = new StringBuffer("");
- sb.append("-----------------------------------------------------------------------------------------------------------------\n");
- sb.append("|" + StringUtils.rightPad(" Short", 7) + "|"
- + StringUtils.rightPad(" Long", 50) + "| Description\n");
- sb.append("-----------------------------------------------------------------------------------------------------------------\n");
- return sb.toString();
+ return ""
+ + "-----------------------------------------------------------------------------------------------------------------\n"
+ + "|" + StringUtils.rightPad(" Short", 7) + "|"
+ + StringUtils.rightPad(" Long", 50) + "| Description\n"
+ + "-----------------------------------------------------------------------------------------------------------------\n";
}
protected String getOptionHelp(CmdLineOption option, String indent) {
@@ -290,7 +264,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
@Override
public String printOptionValidationErrors(List<Result> results) {
- StringBuffer sb = new StringBuffer("Validation Failures:");
+ StringBuilder sb = new StringBuilder("Validation Failures:");
for (Result result : results) {
sb.append(" - ").append(result.getMessage()).append("\n");
}
@@ -300,7 +274,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
@Override
public String printRequiredOptionsMissingError(
Set<CmdLineOption> missingOptions) {
- StringBuffer sb = new StringBuffer("Missing required options:\n");
+ StringBuilder sb = new StringBuilder("Missing required options:\n");
for (CmdLineOption option : missingOptions) {
sb.append(" - ").append(option.toString()).append("\n");
}
@@ -309,7 +283,7 @@ public class StdCmdLinePrinter implements CmdLinePrinter {
@Override
public String printActionMessages(List<String> messages) {
- StringBuffer sb = new StringBuffer("");
+ StringBuilder sb = new StringBuilder("");
for (String message : messages) {
sb.append(message);
}
[7/9] oodt git commit: OODT-889 update file manager tests
Posted by ma...@apache.org.
OODT-889 update file manager tests
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/d757222b
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/d757222b
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/d757222b
Branch: refs/heads/master
Commit: d757222b8847e839fb3326bec6cd08e96cea0fad
Parents: 4286c92
Author: Tom Barber <to...@analytical-labs.com>
Authored: Tue Oct 13 15:01:32 2015 +0100
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Tue Oct 13 15:01:32 2015 +0100
----------------------------------------------------------------------
.../catalog/query/FreeTextQueryExpression.java | 4 +-
.../cas/catalog/query/QueryLogicalGroup.java | 4 +-
.../oodt/cas/filemgr/catalog/LuceneCatalog.java | 53 +-
.../oodt/cas/filemgr/catalog/TestAppender.java | 29 ++
.../filemgr/catalog/TestDataSourceCatalog.java | 159 ++++--
.../cas/filemgr/catalog/TestLuceneCatalog.java | 520 ++++++++++++++++++-
.../catalog/TestMappedDataSourceCatalog.java | 1 -
.../catalog/TestOrderedDataSourceCatalog.java | 7 +-
8 files changed, 675 insertions(+), 102 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
index 12af21c..c5268a9 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/FreeTextQueryExpression.java
@@ -82,9 +82,9 @@ public class FreeTextQueryExpression extends TermQueryExpression {
*/
public String toString() {
StringBuilder serial = new StringBuilder();
- serial.append("({" + this.bucketNames + "} " + this.term.getName() + " :|");
+ serial.append("({").append(this.bucketNames).append("} ").append(this.term.getName()).append(" :|");
for (String value : this.term.getValues()) {
- serial.append("+" + value);
+ serial.append("+").append(value);
serial.append("|: )");
}
return serial.toString();
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
----------------------------------------------------------------------
diff --git a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
index c6b764b..df16b6b 100644
--- a/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
+++ b/catalog/src/main/java/org/apache/oodt/cas/catalog/query/QueryLogicalGroup.java
@@ -97,9 +97,9 @@ public class QueryLogicalGroup extends QueryExpression {
@Override
public String toString() {
StringBuilder query = new StringBuilder();
- query.append("({" + this.bucketNames + "} " + this.operator + " : ");
+ query.append("({").append(this.bucketNames).append("} ").append(this.operator).append(" : ");
for (QueryExpression queryExpression : this.queryExpressions) {
- query.append(queryExpression.toString() + ",");
+ query.append(queryExpression.toString()).append(",");
}
return query.substring(0, query.length() - 1) + ")";
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
index 5e375c4..98e0eb5 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
@@ -18,55 +18,33 @@
package org.apache.oodt.cas.filemgr.catalog;
//JDK imports
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-//Lucene imports
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.BooleanClause;
-import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.Hits;
-import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.RangeQuery;
-import org.apache.lucene.search.Sort;
-import org.apache.lucene.search.SortField;
-import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.WildcardQuery;
-
-//OODT imports
-import org.apache.oodt.cas.filemgr.structs.BooleanQueryCriteria;
-import org.apache.oodt.cas.filemgr.structs.Element;
-import org.apache.oodt.cas.filemgr.structs.Product;
-import org.apache.oodt.cas.filemgr.structs.ProductPage;
-import org.apache.oodt.cas.filemgr.structs.ProductType;
+import org.apache.lucene.search.*;
+import org.apache.oodt.cas.filemgr.structs.*;
import org.apache.oodt.cas.filemgr.structs.Query;
-import org.apache.oodt.cas.filemgr.structs.QueryCriteria;
-import org.apache.oodt.cas.filemgr.structs.RangeQueryCriteria;
-import org.apache.oodt.cas.filemgr.structs.Reference;
-import org.apache.oodt.cas.filemgr.structs.TermQueryCriteria;
import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
import org.apache.oodt.cas.filemgr.structs.exceptions.ValidationLayerException;
import org.apache.oodt.cas.filemgr.validation.ValidationLayer;
import org.apache.oodt.cas.metadata.Metadata;
import org.apache.oodt.commons.pagination.PaginationUtils;
-
-//JUG imports
import org.safehaus.uuid.UUID;
import org.safehaus.uuid.UUIDGenerator;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+//Lucene imports
+//OODT imports
+//JUG imports
+
/**
* @author mattmann
* @author bfoster
@@ -846,6 +824,9 @@ public class LuceneCatalog implements Catalog {
* org.apache.oodt.cas.filemgr.structs.ProductPage)
*/
public ProductPage getNextPage(ProductType type, ProductPage currentPage) {
+ if(type==null){
+ return null;
+ }
if (currentPage == null) {
return getFirstPage(type);
}
@@ -886,6 +867,10 @@ public class LuceneCatalog implements Catalog {
* org.apache.oodt.cas.filemgr.structs.ProductPage)
*/
public ProductPage getPrevPage(ProductType type, ProductPage currentPage) {
+ if(type==null){
+ return null;
+ }
+
if (currentPage == null) {
return getFirstPage(type);
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestAppender.java
----------------------------------------------------------------------
diff --git a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestAppender.java b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestAppender.java
new file mode 100644
index 0000000..5680428
--- /dev/null
+++ b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestAppender.java
@@ -0,0 +1,29 @@
+package org.apache.oodt.cas.filemgr.catalog;
+
+import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.spi.LoggingEvent;
+
+import java.util.ArrayList;
+import java.util.List;
+
+class TestAppender extends AppenderSkeleton {
+ private final List<LoggingEvent> log = new ArrayList<LoggingEvent>();
+
+ @Override
+ public boolean requiresLayout() {
+ return false;
+ }
+
+ @Override
+ protected void append(final LoggingEvent loggingEvent) {
+ log.add(loggingEvent);
+ }
+
+ @Override
+ public void close() {
+ }
+
+ public List<LoggingEvent> getLog() {
+ return new ArrayList<LoggingEvent>(log);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestDataSourceCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestDataSourceCatalog.java b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestDataSourceCatalog.java
index eb3ef32..a108853 100644
--- a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestDataSourceCatalog.java
+++ b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestDataSourceCatalog.java
@@ -19,28 +19,28 @@
package org.apache.oodt.cas.filemgr.catalog;
//JDK imports
+import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
+import org.apache.oodt.cas.filemgr.structs.*;
+import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
+import org.apache.oodt.cas.filemgr.util.SqlParser;
+import org.apache.oodt.cas.metadata.Metadata;
+import org.apache.oodt.commons.database.DatabaseConnectionBuilder;
+import org.apache.oodt.commons.database.SqlScript;
+
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
+import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
-import javax.sql.DataSource;
-//OODT imports
-import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
-import org.apache.oodt.cas.filemgr.structs.Product;
-import org.apache.oodt.cas.filemgr.structs.ProductPage;
-import org.apache.oodt.cas.filemgr.structs.ProductType;
-import org.apache.oodt.cas.filemgr.structs.Query;
-import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
-import org.apache.oodt.commons.database.DatabaseConnectionBuilder;
-import org.apache.oodt.commons.database.SqlScript;
-import org.apache.oodt.cas.filemgr.util.SqlParser;
-import org.apache.oodt.cas.metadata.Metadata;
+import javax.sql.DataSource;
-//Junit imports
import junit.framework.TestCase;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertThat;
+
/**
* @author mattmann
* @version $Revision$
@@ -71,7 +71,7 @@ public class TestDataSourceCatalog extends TestCase {
properties.setProperty("java.util.logging.config.file", new File(
loggingPropertiesUrl.getFile()).getAbsolutePath());
- if(properties.getProperty("overrideProperties") == null){
+ if(properties.getProperty("overrideProperties") == null) {
try {
URL filemgrPropertiesUrl = this.getClass().getResource(
@@ -83,42 +83,45 @@ public class TestDataSourceCatalog extends TestCase {
}
- // first load the example configuration
+ // first load the example configuration
- // get a temp directory
- File tempDir = null;
- File tempFile = null;
+ // get a temp directory
+ File tempDir = null;
+ File tempFile = null;
- try {
- tempFile = File.createTempFile("foo", "bar");
- tempFile.deleteOnExit();
- tempDir = tempFile.getParentFile();
- } catch (Exception e) {
- fail(e.getMessage());
- }
+ try {
+ tempFile = File.createTempFile("foo", "bar");
+ tempFile.deleteOnExit();
+ tempDir = tempFile.getParentFile();
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
- tmpDirPath = tempDir.getAbsolutePath();
- if (!tmpDirPath.endsWith("/")) {
- tmpDirPath += "/";
- }
+ tmpDirPath = tempDir.getAbsolutePath();
+ if (!tmpDirPath.endsWith("/")) {
+ tmpDirPath += "/";
+ }
- tmpDirPath += "testCat";
+ tmpDirPath += "testCat";
- // now override the catalog ones
- properties.setProperty(
+ // now override the catalog ones
+ properties.setProperty(
"org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.url",
"jdbc:hsqldb:file:" + tmpDirPath + "/testCat;shutdown=true");
- properties.setProperty(
+ properties.setProperty(
"org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.user",
"sa");
- properties.setProperty(
+ properties.setProperty(
"org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.pass",
"");
- properties.setProperty(
+ properties.setProperty(
"org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.driver",
"org.hsqldb.jdbcDriver");
+ properties.setProperty(
+ "org.apache.oodt.cas.filemgr.catalog.datasource.lenientFields",
+ "false");
}
else{
try {
@@ -392,6 +395,37 @@ public class TestDataSourceCatalog extends TestCase {
}
}
+ public void testAddProductReferences() {
+
+ Product testProduct = getTestProduct();
+ testProduct.setProductId("1"); // need to link reference to prod
+
+ Reference ref = new Reference();
+
+ ref.setMimeType("text/plain");
+ ref.setFileSize(12345);
+ List<Reference> refs = new ArrayList<Reference>();
+ refs.add(ref);
+ testProduct.setProductReferences(refs);
+ try {
+ myCat.addProductReferences(testProduct);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+
+ try {
+ List<Reference> productReferences = myCat.getProductReferences(testProduct);
+ assertNotNull(productReferences);
+ assertFalse(productReferences.isEmpty());
+ assertEquals(productReferences.get(0).getMimeType().getName(), "text/plain");
+ assertEquals(productReferences.get(0).getFileSize(), 12345);
+ } catch (CatalogException e) {
+ fail(e.getMessage());
+ }
+
+ }
+
public void testQuery() throws Exception {
// ingest first file
Product testProduct = getTestProduct();
@@ -453,6 +487,59 @@ public class TestDataSourceCatalog extends TestCase {
assertEquals("[24, 23]", productIds.toString());
}
+ public void testNullValidationLayer(){
+
+ setUpProperties();
+ System.setProperty(
+ "org.apache.oodt.cas.filemgr.catalog.datasource.lenientFields",
+ "true");
+ myCat = getCatalog();
+ // now create the basic schema for the DB
+ createSchema();
+
+ assertThat(myCat, instanceOf(LenientDataSourceCatalog.class));
+
+ }
+
+ public void testPassDatasource(){
+ String url = System
+ .getProperty("org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.url");
+ String user = System
+ .getProperty("org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.user");
+ String pass = System
+ .getProperty("org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.pass");
+ String driver = System.getProperty("org.apache.oodt.cas.filemgr.catalog.datasource.jdbc.driver");
+
+ DataSource ds = DatabaseConnectionBuilder.buildDataSource(user,pass,driver,url);
+
+ myCat = new DataSourceCatalogFactory(ds).createCatalog();
+
+ Product testProduct = getTestProduct();
+ try {
+ myCat.addProduct(testProduct);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+
+ Product retProduct;
+ try {
+ retProduct = myCat.getProductByName("test");
+ assertNotNull(retProduct);
+ assertEquals("test", retProduct.getProductName());
+ assertEquals(Product.STRUCTURE_FLAT, retProduct
+ .getProductStructure());
+ assertNotNull(retProduct.getProductType());
+ assertEquals("urn:oodt:GenericFile", retProduct.getProductType()
+ .getProductTypeId());
+ assertEquals(Product.STATUS_TRANSFER, retProduct
+ .getTransferStatus());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+
+ }
protected String getSchemaPath() {
URL url = this.getClass().getResource(
"/testcat.sql");
@@ -492,7 +579,7 @@ public class TestDataSourceCatalog extends TestCase {
}
- private static Product getTestProduct() {
+ protected static Product getTestProduct() {
Product testProduct = Product.getDefaultFlatProduct("test",
"urn:oodt:GenericFile");
testProduct.getProductType().setName("GenericFile");
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestLuceneCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestLuceneCatalog.java b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestLuceneCatalog.java
index 7079115..3115d10 100644
--- a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestLuceneCatalog.java
+++ b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestLuceneCatalog.java
@@ -18,29 +18,22 @@
package org.apache.oodt.cas.filemgr.catalog;
-//JDK imports
+import com.google.common.collect.Lists;
+
+import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
+import org.apache.oodt.cas.filemgr.structs.*;
+import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
+import org.apache.oodt.cas.metadata.Metadata;
+import org.hamcrest.CoreMatchers;
+import org.junit.Assert;
+
import java.io.File;
import java.io.FileInputStream;
import java.net.URL;
+import java.util.List;
import java.util.Properties;
import java.util.Vector;
-//OODT imports
-import org.apache.oodt.cas.filemgr.catalog.LuceneCatalog;
-import org.apache.oodt.cas.filemgr.catalog.LuceneCatalogFactory;
-import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
-import org.apache.oodt.cas.filemgr.structs.BooleanQueryCriteria;
-import org.apache.oodt.cas.filemgr.structs.Product;
-import org.apache.oodt.cas.filemgr.structs.ProductPage;
-import org.apache.oodt.cas.filemgr.structs.ProductType;
-import org.apache.oodt.cas.filemgr.structs.Query;
-import org.apache.oodt.cas.filemgr.structs.Reference;
-import org.apache.oodt.cas.filemgr.structs.TermQueryCriteria;
-import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
-import org.apache.oodt.cas.metadata.Metadata;
-import com.google.common.collect.Lists;
-
-//Junit imports
import junit.framework.TestCase;
/**
@@ -87,7 +80,7 @@ public class TestLuceneCatalog extends TestCase {
// get a temp directory
File tempDir = null;
- File tempFile = null;
+ File tempFile;
try {
tempFile = File.createTempFile("foo", "bar");
@@ -124,6 +117,9 @@ public class TestLuceneCatalog extends TestCase {
"org.apache.oodt.cas.filemgr.catalog.lucene.mergeFactor",
"20");
+ properties.setProperty(
+ "org.apache.oodt.cas.filemgr.catalog.datasource.lenientFields",
+ "false");
// now override the val layer ones
URL examplesCoreUrl = this.getClass().getResource(
"/examples/core");
@@ -156,8 +152,8 @@ public class TestLuceneCatalog extends TestCase {
File[] tmpFiles = tmpDir.listFiles();
if (tmpFiles != null && tmpFiles.length > 0) {
- for (int i = 0; i < tmpFiles.length; i++) {
- tmpFiles[i].delete();
+ for (File tmpFile : tmpFiles) {
+ tmpFile.delete();
}
tmpDir.delete();
@@ -315,7 +311,7 @@ public class TestLuceneCatalog extends TestCase {
Product testProd = getTestProduct();
Metadata met = getTestMetadata("test");
- for (int i = 0; i < this.catPageSize; i++) {
+ for (int i = 0; i < catPageSize; i++) {
try {
myCat.addProduct(testProd);
myCat.addMetadata(met, testProd);
@@ -354,10 +350,470 @@ public class TestLuceneCatalog extends TestCase {
assertEquals(1, page.getPageProducts().size());
assertEquals(2, page.getTotalPages());
assertNotNull(page.getPageProducts().get(0));
- Product retProd = ((Product) page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
assertEquals("ShouldBeFirstForPage.txt", retProd.getProductName());
}
-
+
+ public void testGetLastProductOnLastPage() {
+ // add catPageSize of the test Product
+ // then add a product called "ShouldBeFirstForPage.txt"
+ // make sure it's the first one on the 2nd page
+
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getLastProductPage(type));
+ assertNotNull(myCat.getLastProductPage(type).getPageProducts());
+ assertEquals(1, myCat.getLastProductPage(type).getPageProducts()
+ .size());
+ ProductPage page = myCat.getLastProductPage(type);
+ assertNotNull(page);
+ assertNotNull(page.getPageProducts());
+ assertEquals(1, page.getPageProducts().size());
+ assertEquals(2, page.getTotalPages());
+ List<Product> prods = page.getPageProducts();
+ assertNotNull(page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
+ assertEquals("ShouldBeFirstForPage.txt", retProd.getProductName());
+ }
+
+ public void testGetTopNProducts() {
+ // add catPageSize of the test Product
+ // then add a product called "ShouldBeFirstForPage.txt"
+ // make sure it's the first one on the 2nd page
+
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getTopNProducts(5));
+ assertEquals(5, myCat.getTopNProducts(5).size());
+ Product retProd = myCat.getTopNProducts(5).get(0);
+ assertEquals("test", retProd.getProductName());
+ } catch (CatalogException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void testGetNextPageNullType(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+
+ ProductPage page = myCat.getNextPage(null, myCat.getFirstPage(type));
+
+
+ assertNull(page);
+ }
+
+ public void testGetNextPageNullCurrentPage(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page = myCat.getNextPage(type, null);
+ assertNotNull(page);
+ assertNotNull(page.getPageProducts());
+ assertEquals(20, page.getPageProducts().size());
+ assertEquals(2, page.getTotalPages());
+ assertNotNull(page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
+ assertEquals("test", retProd.getProductName());
+ }
+
+ public void testGetNextPageCurrentPageIsLastPage(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page = myCat.getNextPage(type, myCat.getLastProductPage(type));
+ assertNotNull(page);
+ assertNotNull(page.getPageProducts());
+ assertEquals(1, page.getPageProducts().size());
+ assertEquals(2, page.getTotalPages());
+ assertNotNull(page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
+ assertEquals("ShouldBeFirstForPage.txt", retProd.getProductName());
+ }
+
+ public void testGetPrevPage(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page2 = myCat.getNextPage(type, myCat.getFirstPage(type));
+ ProductPage page = myCat.getPrevPage(type, page2);
+ assertEquals(2, page2.getPageNum());
+ assertEquals(1, page.getPageNum());
+ }
+
+ public void testGetPrevPageNullCurrentPage(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page = myCat.getPrevPage(type, null);
+ assertNotNull(page);
+ assertNotNull(page.getPageProducts());
+ assertEquals(20, page.getPageProducts().size());
+ assertEquals(2, page.getTotalPages());
+ assertNotNull(page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
+ assertEquals("test", retProd.getProductName());
+ }
+
+ public void testGetPrevPageCurrentPageIsFirstPage(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page = myCat.getPrevPage(type, myCat.getFirstPage(type));
+ assertNotNull(page);
+ assertNotNull(page.getPageProducts());
+ assertEquals(20, page.getPageProducts().size());
+ assertEquals(2, page.getTotalPages());
+ assertNotNull(page.getPageProducts().get(0));
+ Product retProd = page.getPageProducts().get(0);
+ assertEquals("test", retProd.getProductName());
+ }
+
+ public void testGetPrevPageNullProductType(){
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ assertNotNull(myCat.getFirstPage(type));
+ assertNotNull(myCat.getFirstPage(type).getPageProducts());
+ assertEquals(catPageSize, myCat.getFirstPage(type).getPageProducts()
+ .size());
+ ProductPage page2 = myCat.getNextPage(type, myCat.getFirstPage(type));
+ ProductPage page = myCat.getPrevPage(null, page2);
+ assertNull(page);
+
+ }
+
+ public void testGetTopNProductsByType() {
+
+ Product testProd = getTestProduct();
+ Metadata met = getTestMetadata("test");
+
+ for (int i = 0; i < catPageSize; i++) {
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ testProd.setProductName("ShouldBeFirstForPage.txt");
+ met.replaceMetadata("CAS.ProdutName", "ShouldBeFirstForPage.txt");
+
+ try {
+ myCat.addProduct(testProd);
+ myCat.addMetadata(met, testProd);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ try {
+ assertNotNull(myCat.getProducts());
+ assertEquals(21, myCat.getProducts().size());
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+
+ ProductType type = new ProductType();
+ type.setProductTypeId("urn:oodt:GenericFile");
+ type.setName("GenericFile");
+ try {
+ assertNotNull(myCat.getTopNProducts(5, type));
+ assertEquals(5, myCat.getTopNProducts(5, type).size());
+ Product retProd = myCat.getTopNProducts(5, type).get(0);
+ assertEquals("test", retProd.getProductName());
+ } catch (CatalogException e) {
+ e.printStackTrace();
+ }
+
+ }
+
/**
* @since OODT-141
*/
@@ -524,7 +980,23 @@ public class TestLuceneCatalog extends TestCase {
assertEquals(page.getPageNum(), 1);
assertEquals(page.getTotalPages(), 1);
}
-
+
+ public void testNullIndexPath(){
+ System.clearProperty("org.apache.oodt.cas.filemgr.catalog.lucene.idxPath");
+ try{
+ LuceneCatalogFactory fact = new LuceneCatalogFactory();
+ fail( "Missing exception" );
+
+ } catch( IllegalArgumentException e ) {
+ Assert.assertThat(e.getMessage(), CoreMatchers.containsString("error initializing lucene catalog: "));
+ }
+ }
+
+ public void testCreateCatalogException(){
+
+ //TODO Use the TestAppender to make sure that an exception thrown is caught and logged.
+ }
+
private static Product getTestProduct() {
Product testProduct = Product.getDefaultFlatProduct("test",
"urn:oodt:GenericFile");
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestMappedDataSourceCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestMappedDataSourceCatalog.java b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestMappedDataSourceCatalog.java
index b6efdb2..fa16e2a 100644
--- a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestMappedDataSourceCatalog.java
+++ b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestMappedDataSourceCatalog.java
@@ -71,5 +71,4 @@ public class TestMappedDataSourceCatalog extends TestDataSourceCatalog {
return new File(url.getFile()).getAbsolutePath();
}
-
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/d757222b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestOrderedDataSourceCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestOrderedDataSourceCatalog.java b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestOrderedDataSourceCatalog.java
index a06ed5e..5e87ddc 100644
--- a/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestOrderedDataSourceCatalog.java
+++ b/filemgr/src/test/java/org/apache/oodt/cas/filemgr/catalog/TestOrderedDataSourceCatalog.java
@@ -17,11 +17,12 @@
package org.apache.oodt.cas.filemgr.catalog;
+import org.apache.oodt.cas.filemgr.structs.Product;
+import org.apache.oodt.cas.metadata.Metadata;
+
import java.io.File;
import java.net.URL;
import java.util.Properties;
-import org.apache.oodt.cas.filemgr.structs.Product;
-import org.apache.oodt.cas.metadata.Metadata;
/**
* @author mattmann
@@ -98,7 +99,7 @@ public class TestOrderedDataSourceCatalog extends TestDataSourceCatalog {
}
- private static Product getTestProduct() {
+ protected static Product getTestProduct() {
Product testProduct = Product.getDefaultFlatProduct("test",
"urn:oodt:GenericFile");
testProduct.getProductType().setName("GenericFile");