Repository: incubator-blur
Updated Branches:
  refs/heads/apache-blur-0.2 4a4338af2 -> 15e8c679b


Used the correct user setup


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/15e8c679
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/15e8c679
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/15e8c679

Branch: refs/heads/apache-blur-0.2
Commit: 15e8c679be1b59fea3ce53f57d7563629be06a6c
Parents: 4a4338a
Author: Chris Rohr <[email protected]>
Authored: Mon Jun 9 13:05:14 2014 -0400
Committer: Chris Rohr <[email protected]>
Committed: Mon Jun 9 13:05:14 2014 -0400

----------------------------------------------------------------------
 .../org/apache/blur/console/util/Config.java    |  19 +-
 .../apache/blur/console/util/SearchUtil.java    | 238 +++++++++++--------
 2 files changed, 148 insertions(+), 109 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/15e8c679/contrib/blur-console/src/main/java/org/apache/blur/console/util/Config.java
----------------------------------------------------------------------
diff --git 
a/contrib/blur-console/src/main/java/org/apache/blur/console/util/Config.java 
b/contrib/blur-console/src/main/java/org/apache/blur/console/util/Config.java
index 3b98267..784440b 100644
--- 
a/contrib/blur-console/src/main/java/org/apache/blur/console/util/Config.java
+++ 
b/contrib/blur-console/src/main/java/org/apache/blur/console/util/Config.java
@@ -26,13 +26,15 @@ import java.util.Map;
 
 import org.apache.blur.BlurConfiguration;
 import org.apache.blur.manager.clusterstatus.ZookeeperClusterStatus;
+import org.apache.blur.thrift.BlurClient;
+import org.apache.blur.thrift.generated.Blur.Iface;
+import org.apache.blur.user.User;
+import org.apache.blur.user.UserContext;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.codehaus.jackson.JsonFactory;
-import org.codehaus.jackson.JsonParseException;
-import org.codehaus.jackson.map.JsonMappingException;
 import org.codehaus.jackson.map.ObjectMapper;
 import org.codehaus.jackson.type.TypeReference;
 
@@ -53,9 +55,6 @@ public class Config {
        public static BlurConfiguration getBlurConfig() {
                return blurConfig;
        }
-       public static Map<String, String> getUserProperties() {
-               return globalUserProperties;
-       }
        
        public static void setupConfig() throws IOException {
                if (cluster == null) {
@@ -147,4 +146,14 @@ public class Config {
                cluster = null;
            }
        }
+       
+       public static Iface getClient(String username) throws IOException {
+               Iface client = BlurClient.getClient(getConnectionString());
+               
+               if (globalUserProperties != null) {
+                       UserContext.setUser(new User(username, 
globalUserProperties));
+               }
+               
+               return client;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/15e8c679/contrib/blur-console/src/main/java/org/apache/blur/console/util/SearchUtil.java
----------------------------------------------------------------------
diff --git 
a/contrib/blur-console/src/main/java/org/apache/blur/console/util/SearchUtil.java
 
b/contrib/blur-console/src/main/java/org/apache/blur/console/util/SearchUtil.java
index ccf66d2..b0a07b7 100644
--- 
a/contrib/blur-console/src/main/java/org/apache/blur/console/util/SearchUtil.java
+++ 
b/contrib/blur-console/src/main/java/org/apache/blur/console/util/SearchUtil.java
@@ -11,7 +11,6 @@ import java.util.TreeMap;
 
 import org.apache.blur.console.model.ResultRow;
 import org.apache.blur.thirdparty.thrift_0_9_0.TException;
-import org.apache.blur.thrift.BlurClient;
 import org.apache.blur.thrift.generated.Blur.Iface;
 import org.apache.blur.thrift.generated.BlurException;
 import org.apache.blur.thrift.generated.BlurQuery;
@@ -26,7 +25,7 @@ import org.apache.blur.thrift.generated.Record;
 import org.apache.blur.thrift.generated.Row;
 import org.apache.blur.thrift.generated.ScoreType;
 import org.apache.blur.thrift.generated.Selector;
-import org.apache.blur.thrift.generated.User;
+import org.apache.blur.user.UserContext;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 
@@ -72,7 +71,7 @@ public class SearchUtil {
                }
                
                if (ArrayUtils.contains(families, "recordid")) {
-                       return fetchRecord(table, query, families);
+                       return fetchRecord(table, query, families, remoteHost);
                }
                
                return searchAndFetch(table, query, rowQuery, start, fetch, 
families, remoteHost);
@@ -80,118 +79,155 @@ public class SearchUtil {
        
        @SuppressWarnings({ "unchecked", "rawtypes" })
        private static Map<String, Object> searchAndFetch(String table, String 
query, String rowQuery, String start, String fetch, String[] families, String 
remoteHost) throws IOException, BlurException, TException {
-               Iface client = 
BlurClient.getClient(Config.getConnectionString());
-               setUser(client, remoteHost);
-               
-               boolean recordsOnly = 
RECORD_RECORD_OPTION.equalsIgnoreCase(rowQuery);
-               
-               BlurQuery blurQuery = new BlurQuery();
-               
-               Query q = new Query(query, 
ROW_ROW_OPTION.equalsIgnoreCase(rowQuery), ScoreType.SUPER, null, null);
-               blurQuery.setQuery(q);
-               blurQuery.setStart(Long.parseLong(start));
-               blurQuery.setFetch(Integer.parseInt(fetch));
-               
-               Selector s = new Selector();
-               s.setRecordOnly(recordsOnly);
-               s.setColumnFamiliesToFetch(new 
HashSet<String>(Arrays.asList(families)));
-               blurQuery.setSelector(s);
-               
-               BlurResults blurResults = client.query(table, blurQuery);
-               
-               Map<String, Object> results = new HashMap<String, Object>();
-               results.put(TOTAL_KEY, blurResults.getTotalResults());
-               
-               Map<String, List> rows = new HashMap<String, List>();
-               for (BlurResult result : blurResults.getResults()) {
-                       FetchResult fetchResult = result.getFetchResult();
-                       
-                       if (recordsOnly) {
-                               // Record Result
-                               FetchRecordResult recordResult = 
fetchResult.getRecordResult();
-                               Record record = recordResult.getRecord();
-                               
-                               String family = record.getFamily();
+               try {
+                       Iface client = Config.getClient(remoteHost);
+                       
+                       boolean recordsOnly = 
RECORD_RECORD_OPTION.equalsIgnoreCase(rowQuery);
+                       
+                       BlurQuery blurQuery = new BlurQuery();
+                       
+                       Query q = new Query(query, 
ROW_ROW_OPTION.equalsIgnoreCase(rowQuery), ScoreType.SUPER, null, null);
+                       blurQuery.setQuery(q);
+                       blurQuery.setStart(Long.parseLong(start));
+                       blurQuery.setFetch(Integer.parseInt(fetch));
+                       
+                       Selector s = new Selector();
+                       s.setRecordOnly(recordsOnly);
+                       s.setColumnFamiliesToFetch(new 
HashSet<String>(Arrays.asList(families)));
+                       blurQuery.setSelector(s);
+                       
+                       BlurResults blurResults = client.query(table, 
blurQuery);
+                       
+                       Map<String, Object> results = new HashMap<String, 
Object>();
+                       results.put(TOTAL_KEY, blurResults.getTotalResults());
+                       
+                       Map<String, List> rows = new HashMap<String, List>();
+                       for (BlurResult result : blurResults.getResults()) {
+                               FetchResult fetchResult = 
result.getFetchResult();
                                
-                               List<Map<String, String>> fam = 
(List<Map<String, String>>) getFam(family, rows, recordsOnly);
-                               fam.add(buildRow(record.getColumns(), 
record.getRecordId()));
-                       } else {
-                               // Row Result
-                               FetchRowResult rowResult = 
fetchResult.getRowResult();
-                               Row row = rowResult.getRow();
-                               if (row.getRecords() == null || 
row.getRecords().size() == 0) {
-                                       for(String family : families) {
-                                               List<ResultRow> fam = 
(List<ResultRow>) getFam(family, rows, recordsOnly);
-                                               getRow(row.getId(), fam);
-                                       }
+                               if (recordsOnly) {
+                                       // Record Result
+                                       FetchRecordResult recordResult = 
fetchResult.getRecordResult();
+                                       Record record = 
recordResult.getRecord();
+                                       
+                                       String family = record.getFamily();
+                                       
+                                       List<Map<String, String>> fam = 
(List<Map<String, String>>) getFam(family, rows, recordsOnly);
+                                       fam.add(buildRow(record.getColumns(), 
record.getRecordId()));
                                } else {
-                                       for (Record record : row.getRecords()) {
-                                               String family = 
record.getFamily();
-                                               
-                                               List<ResultRow> fam = 
(List<ResultRow>) getFam(family, rows, recordsOnly);
-                                               ResultRow rowData = 
getRow(row.getId(), fam);
-                                               
rowData.getRecords().add(buildRow(record.getColumns(), record.getRecordId()));
+                                       // Row Result
+                                       FetchRowResult rowResult = 
fetchResult.getRowResult();
+                                       Row row = rowResult.getRow();
+                                       if (row.getRecords() == null || 
row.getRecords().size() == 0) {
+                                               for(String family : families) {
+                                                       List<ResultRow> fam = 
(List<ResultRow>) getFam(family, rows, recordsOnly);
+                                                       getRow(row.getId(), 
fam);
+                                               }
+                                       } else {
+                                               for (Record record : 
row.getRecords()) {
+                                                       String family = 
record.getFamily();
+                                                       
+                                                       List<ResultRow> fam = 
(List<ResultRow>) getFam(family, rows, recordsOnly);
+                                                       ResultRow rowData = 
getRow(row.getId(), fam);
+                                                       
rowData.getRecords().add(buildRow(record.getColumns(), record.getRecordId()));
+                                               }
                                        }
                                }
                        }
+                       
+                       results.put(FAMILY_KEY, new 
HashSet<String>(Arrays.asList(families)));
+                       results.put(DATA_KEY, rows);
+                       
+                       return results;
+               } finally {
+                       UserContext.reset();
                }
-               
-               results.put(FAMILY_KEY, new 
HashSet<String>(Arrays.asList(families)));
-               results.put(DATA_KEY, rows);
-               
-               return results;
        }
        
        private static Map<String, Object> fullTextSearch(String table, String 
query, String remoteHost) throws IOException, BlurException, TException {
-               Iface client = 
BlurClient.getClient(Config.getConnectionString());
-               setUser(client, remoteHost);
-               
-               BlurQuery blurQuery = new BlurQuery();
-               
-               Query q = new Query(query, true, ScoreType.SUPER, null, null);
-               blurQuery.setQuery(q);
-               BlurResults blurResults = client.query(table, blurQuery);
-               
-               Map<String, Object> results = new HashMap<String, Object>();
-               results.put(TOTAL_KEY, blurResults.getTotalResults());
-               return results;
+               try {
+                       Iface client = Config.getClient(remoteHost);
+                       
+                       BlurQuery blurQuery = new BlurQuery();
+                       
+                       Query q = new Query(query, true, ScoreType.SUPER, null, 
null);
+                       blurQuery.setQuery(q);
+                       BlurResults blurResults = client.query(table, 
blurQuery);
+                       
+                       Map<String, Object> results = new HashMap<String, 
Object>();
+                       results.put(TOTAL_KEY, blurResults.getTotalResults());
+                       return results;
+               } finally {
+                       UserContext.reset();
+               }
        }
        
        @SuppressWarnings({ "unchecked", "rawtypes" })
        private static Map<String, Object> fetchRow(String table, String query, 
String[] families, String remoteHost) throws IOException, BlurException, 
TException {
-               Iface client = 
BlurClient.getClient(Config.getConnectionString());
-               setUser(client, remoteHost);
-               
-               Selector selector = new Selector();
-               String rowid = StringUtils.remove(query, "rowid:");
-               selector.setRowId(rowid);
-               selector.setColumnFamiliesToFetch(new 
HashSet<String>(Arrays.asList(families)));
-               
-               FetchResult fetchRow = client.fetchRow(table, selector);
-               
-               Map<String, Object> results = new HashMap<String, Object>();
-               results.put(TOTAL_KEY, fetchRow.getRowResult().getRow() == null 
? 0 : 1);
-               
-               Map<String, List> rows = new HashMap<String, List>();
-               Row row = fetchRow.getRowResult().getRow();
-               if (row != null) {
-                       for (Record record : row.getRecords()) {
-                               String family = record.getFamily();
-                               
-                               List<ResultRow> fam = (List<ResultRow>) 
getFam(family, rows, false);
-                               ResultRow rowData = getRow(row.getId(), fam);
-                               
rowData.getRecords().add(buildRow(record.getColumns(), record.getRecordId()));
+               try {
+                       Iface client = Config.getClient(remoteHost);
+                       
+                       Selector selector = new Selector();
+                       String rowid = StringUtils.remove(query, "rowid:");
+                       selector.setRowId(rowid);
+                       selector.setColumnFamiliesToFetch(new 
HashSet<String>(Arrays.asList(families)));
+                       
+                       FetchResult fetchRow = client.fetchRow(table, selector);
+                       
+                       Map<String, Object> results = new HashMap<String, 
Object>();
+                       results.put(TOTAL_KEY, fetchRow.getRowResult().getRow() 
== null ? 0 : 1);
+                       
+                       Map<String, List> rows = new HashMap<String, List>();
+                       Row row = fetchRow.getRowResult().getRow();
+                       if (row != null) {
+                               for (Record record : row.getRecords()) {
+                                       String family = record.getFamily();
+                                       
+                                       List<ResultRow> fam = (List<ResultRow>) 
getFam(family, rows, false);
+                                       ResultRow rowData = getRow(row.getId(), 
fam);
+                                       
rowData.getRecords().add(buildRow(record.getColumns(), record.getRecordId()));
+                               }
                        }
+                       results.put(DATA_KEY, rows);
+                       results.put(FAMILY_KEY, new 
HashSet<String>(Arrays.asList(families)));
+                       
+                       return results;
+               } finally {
+                       UserContext.reset();
                }
-               results.put(DATA_KEY, rows);
-               results.put(FAMILY_KEY, new 
HashSet<String>(Arrays.asList(families)));
-               
-               return null;
        }
        
-       private static Map<String, Object> fetchRecord(String table, String 
query, String[] families) throws IOException {
-//             Iface client = 
BlurClient.getClient(Config.getConnectionString());
-               return null;
+       @SuppressWarnings({ "rawtypes", "unchecked" })
+       private static Map<String, Object> fetchRecord(String table, String 
query, String[] families, String remoteHost) throws IOException, BlurException, 
TException {
+               try {
+                       Iface client = Config.getClient(remoteHost);
+                       
+                       Selector selector = new Selector();
+                       String recordId = StringUtils.remove(query, 
"recordid:");
+                       selector.setRecordId(recordId);
+                       selector.setRecordOnly(true);
+                       selector.setColumnFamiliesToFetch(new 
HashSet<String>(Arrays.asList(families)));
+                       
+                       FetchResult fetchRow = client.fetchRow(table, selector);
+                       
+                       Map<String, Object> results = new HashMap<String, 
Object>();
+                       results.put(TOTAL_KEY, 
fetchRow.getRecordResult().getRecord() == null ? 0 : 1);
+                       
+                       Map<String, List> rows = new HashMap<String, List>();
+                       Record record = fetchRow.getRecordResult().getRecord();
+                       if (record != null) {
+                               String family = record.getFamily();
+                                       
+                               List<Map<String, String>> fam = 
(List<Map<String, String>>) getFam(family, rows, true);
+                               fam.add(buildRow(record.getColumns(), 
record.getRecordId()));
+                       }
+                       results.put(DATA_KEY, rows);
+                       results.put(FAMILY_KEY, new 
HashSet<String>(Arrays.asList(families)));
+                       
+                       return results;
+               } finally {
+                       UserContext.reset();
+               }
        }
        
        private static Map<String, String> buildRow(List<Column> columns, 
String recordid) {
@@ -237,10 +273,4 @@ public class SearchUtil {
                
                return row;
        }
-       
-       private static void setUser(Iface client, String username) throws 
TException {
-               if (Config.getUserProperties() != null) {
-                       client.setUser(new User(username, 
Config.getUserProperties()));
-               }
-       }
 }

Reply via email to