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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++