You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oodt.apache.org by "Mattmann, Chris A (388J)" <ch...@jpl.nasa.gov> on 2011/03/26 09:03:01 UTC
Re: svn commit: r1085621 - in
/oodt/branches/wengine-branch/filemgr/src/main/java:
gov/nasa/jpl/oodt/cas/filemgr/catalog/
gov/nasa/jpl/oodt/cas/filemgr/metadata/extractors/
gov/nasa/jpl/oodt/cas/filemgr/structs/query/
gov/nasa/jpl/oodt/cas/filemgr/stru...
You go boy, awesome! I like the name too, ColumnBasedCatalog...
Cheers,
Chris
On Mar 26, 2011, at 1:59 AM, <bf...@apache.org> <bf...@apache.org> 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: chris.a.mattmann@nasa.gov
WWW: http://sunset.usc.edu/~mattmann/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adjunct Assistant Professor, Computer Science Department
University of Southern California, Los Angeles, CA 90089 USA
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++