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 {