You go boy, awesome! I like the name too, ColumnBasedCatalog... Cheers, Chris
On Mar 26, 2011, at 1:59 AM, <[email protected]> <[email protected]> wrote: > Author: bfoster > Date: Sat Mar 26 00:59:33 2011 > New Revision: 1085621 > > URL: http://svn.apache.org/viewvc?rev=1085621&view=rev > Log: > > - continued updates to column-based datasource catalog > > --------------------- > > Removed: > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/catalog/ > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/metadata/extractors/ > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/structs/query/ > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/structs/type/ > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/system/ > > oodt/branches/wengine-branch/filemgr/src/main/java/gov/nasa/jpl/oodt/cas/filemgr/versioning/ > Modified: > > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java > > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java > > Modified: > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java > URL: > http://svn.apache.org/viewvc/oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java?rev=1085621&r1=1085620&r2=1085621&view=diff > ============================================================================== > --- > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java > (original) > +++ > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/ColumnBasedDataSourceCatalog.java > Sat Mar 26 00:59:33 2011 > @@ -85,6 +85,23 @@ public class ColumnBasedDataSourceCatalo > this.pageSize = pageSize; > this.dbIntegerTypes = dbIntegerTypes; > this.dbVectorElements = dbVectorElements; > + > + Connection conn = null; > + Statement statement = null; > + try { > + conn = ds.getConnection(); > + statement = conn.createStatement(); > + statement.execute("alter session set NLS_DATE_FORMAT = > 'YYYY-MM-DD'"); > + statement.execute("alter session set NLS_TIME_FORMAT = > 'HH24:MI:SS.FF3'"); > + statement.execute("alter session set NLS_TIMESTAMP_FORMAT = > 'YYYY-MM-DD\"T\"HH24:MI:SS.FF3'"); > + statement.execute("alter session set NLS_TIME_TZ_FORMAT = > 'HH24:MI:SS.FF3TZH:TZM'"); > + statement.execute("alter session set > NLS_TIMESTAMP_FORMAT='YYYY-MM-DD\"T\"HH24:MI:SS.FF3\"Z\"'"); > + statement.execute("alter session set > NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD\"T\"HH24:MI:SS.FF3TZH:TZM'"); > + }catch (Exception e) { > + }finally { > + try { conn.close(); }catch (Exception e) {} > + try { statement.close(); }catch (Exception e) {} > + } > } > > public int getPageSize() { > @@ -507,36 +524,30 @@ public class ColumnBasedDataSourceCatalo > Connection conn = null; > Statement statement = null; > > - String productRefTable = product.getProductType().getName() > - + "_reference"; > - > try { > conn = dataSource.getConnection(); > conn.setAutoCommit(false); > statement = conn.createStatement(); > > - for (Iterator<Reference> i = > product.getProductReferences().iterator(); i > - .hasNext();) { > - Reference r = i.next(); > + for (Reference reference : product.getProductReferences()) { > > String addRefSql = "INSERT INTO " > - + productRefTable > + + product.getProductType().getName() + "_reference" > + " " > + "(ProductId, OriginalReference, DataStoreReference, > FileSize, MimeType) " > + "VALUES (" > + product.getProductId() > + ", '" > - + r.getOrigReference() > + + reference.getOrigReference() > + "', '" > - + r.getDataStoreReference() > + + reference.getDataStoreReference() > + "', " > - + r.getFileSize() > + + reference.getFileSize() > + ",'" > - + ((r.getMimeType() == null) ? "" : r.getMimeType() > + + ((reference.getMimeType() == null) ? "" : > reference.getMimeType() > .getName()) + "')"; > > - LOG.log(Level.FINE, "addProductReferences: Executing: " > - + addRefSql); > + LOG.log(Level.FINE, "addProductReferences: Executing: " + > addRefSql); > statement.execute(addRefSql); > } > > @@ -589,7 +600,7 @@ public class ColumnBasedDataSourceCatalo > ProductType productType = new ProductType(); > productType.setName(rs.getString("ProductType")); > product.setProductType(productType); > - product.setTransferStatus(rs.getString("TransferStatus")); > + > product.setTransferStatus(rs.getString("ProductTransferStatus")); > return product; > }else { > throw new Exception("Failed to load product for product id = '" > + productId + "'"); > @@ -833,6 +844,7 @@ public class ColumnBasedDataSourceCatalo > conn = dataSource.getConnection(); > statement = conn.createStatement(); > > + System.out.println(product.getProductType()); > String metadataSql = "SELECT * FROM " > + product.getProductType().getName() + "_vw " > + " WHERE ProductId = " + product.getProductId(); > @@ -842,10 +854,18 @@ public class ColumnBasedDataSourceCatalo > > Metadata metadata = new Metadata(); > List<Element> elements = > this.validationLayer.getElements(product.getProductType()); > - if (rs.next()) > - for (Element element : elements) > - metadata.addMetadata(element.getElementName(), > rs.getString(element.getElementName())); > - > + if (rs.next()) { > + for (Element element : elements) { > + try { > + String value = > rs.getString(element.getElementName()); > + if (value == null) > + throw new Exception("value null"); > + metadata.addMetadata(element.getElementName(), > value); > + }catch (Exception e) { > + LOG.log(Level.WARNING, "Element '" + > element.getElementName() + "' not found : " + e.getMessage()); > + } > + } > + } > return metadata; > } catch (Exception e) { > LOG.log(Level.SEVERE, "Exception getting metadata. Message: " > @@ -905,7 +925,7 @@ public class ColumnBasedDataSourceCatalo > > String getProductSql = "SELECT * FROM " + type.getName(); > if (query.getCriteria() != null) > - getProductSql += " WHERE " + > SqlParser.getInfixCriteriaString(query.getCriteria()); > + getProductSql += " WHERE " + > SqlParser.getInfixCriteriaString(query.getCriteria()).replaceAll("==", "=");; > > rs = statement.executeQuery(getProductSql); > > @@ -954,9 +974,10 @@ public class ColumnBasedDataSourceCatalo > ResultSet.CONCUR_READ_ONLY); > > String getProductSql = "SELECT ProductId FROM " + > type.getName() + "_vw"; > - if (query.getCriteria() != null) > - getProductSql += " WHERE " + > SqlParser.getInfixCriteriaString(query.getCriteria()); > + if (query.getCriteria() != null && query.getCriteria().size() > > 0) > + getProductSql += " WHERE " + > SqlParser.getInfixCriteriaString(query.getCriteria()).replaceAll("==", "="); > > + LOG.log(Level.FINE, "performing getProductSql '" + > getProductSql + "'"); > rs = statement.executeQuery(getProductSql); > > Vector<String> productIds = new Vector<String>(); > > Modified: > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java > URL: > http://svn.apache.org/viewvc/oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java?rev=1085621&r1=1085620&r2=1085621&view=diff > ============================================================================== > --- > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java > (original) > +++ > oodt/branches/wengine-branch/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java > Sat Mar 26 00:59:33 2011 > @@ -633,7 +633,7 @@ public class XmlRpcFileManager { > List<String> productIds = catalog.query(catalogQuery, > productTypes); > for (String productId : productIds) { > Product product = catalog.getProductById(productId); > - > product.setProductType(this.repositoryManager.getProductTypeById(product.getProductType().getProductTypeId())); > + this.setProductType(product); > QueryResult qr = new QueryResult(product, this > .getReducedMetadata(product, complexQuery > .getReducedMetadata())); > @@ -1127,17 +1127,18 @@ public class XmlRpcFileManager { > } > > private void setProductType(List<Product> products) throws Exception { > - if (products != null && products.size() > 0) { > - for (Iterator<Product> i = products.iterator(); i.hasNext();) { > - Product p = i.next(); > - try { > - p.setProductType(repositoryManager.getProductTypeById(p > - .getProductType().getProductTypeId())); > - } catch (RepositoryManagerException e) { > - throw new Exception(e.getMessage(), e); > - } > - } > - } > + if (products != null && products.size() > 0) > + for (Product product : products) > + this.setProductType(product); > + } > + > + private void setProductType(Product product) throws Exception { > + if (product.getProductType().getProductTypeId() != null) > + > product.setProductType(repositoryManager.getProductTypeById(product > + .getProductType().getProductTypeId())); > + else > + > product.setProductType(repositoryManager.getProductTypeByName(product > + .getProductType().getName())); > } > > private List<Product> query(Query query, ProductType productType) throws > CatalogException { > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chris Mattmann, Ph.D. Senior Computer Scientist NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA Office: 171-266B, Mailstop: 171-246 Email: [email protected] WWW: http://sunset.usc.edu/~mattmann/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Adjunct Assistant Professor, Computer Science Department University of Southern California, Los Angeles, CA 90089 USA ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
