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:05 UTC
[5/9] oodt git commit: OODT-888 replace =+ with StringBuilder to
improve concat performance
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);
}