You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2015/11/04 13:19:04 UTC
[1/6] oodt git commit: refactor for xmlrpc arghhh
Repository: oodt
Updated Branches:
refs/heads/master 9d13beabc -> 8705ccf40
refactor for xmlrpc arghhh
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/aa5e31a6
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/aa5e31a6
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/aa5e31a6
Branch: refs/heads/master
Commit: aa5e31a618a9aa17de920b975c9443e7583ecd14
Parents: 9d13bea
Author: Tom Barber <to...@analytical-labs.com>
Authored: Wed Nov 4 09:40:57 2015 +0000
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Wed Nov 4 09:40:57 2015 +0000
----------------------------------------------------------------------
.../oodt/cas/filemgr/catalog/LuceneCatalog.java | 112 ++---
.../cas/filemgr/system/XmlRpcFileManager.java | 447 ++++++++++++++++++-
.../filemgr/system/XmlRpcFileManagerClient.java | 75 ++--
.../cas/filemgr/util/XmlRpcStructFactory.java | 361 ++++++++++++---
.../org/apache/oodt/cas/metadata/Metadata.java | 15 +-
.../resource/system/XmlRpcResourceManager.java | 7 +-
6 files changed, 821 insertions(+), 196 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
index e5985ad..d3c297a 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
@@ -154,27 +154,27 @@ public class LuceneCatalog implements Catalog {
*/
public synchronized void addMetadata(Metadata m, Product product)
throws CatalogException {
- CompleteProduct p = CATALOG_CACHE.get(product.getProductId());
-
- if (p == null) {
- // move product from index to cache
- // it will be moved back after metadata is added
- p = getCompleteProductById(product.getProductId(), true, true);
- LOG.log(Level.FINE, "Product not found in local cache, retrieved from index");
- removeProduct(product);
- }
-
- if (p != null) {
- p.setMetadata(m);
- if (hasMetadataAndRefs(p)) {
- LOG.log(Level.FINE,
+ if(product.getProductId()!=null && CATALOG_CACHE.containsKey(product.getProductId())) {
+ CompleteProduct p = CATALOG_CACHE.get(product.getProductId());
+
+ p.setMetadata(m);
+ if (hasMetadataAndRefs(p)) {
+ LOG.log(Level.FINE,
"metadata and references present for product: ["
- + product.getProductId() + "]");
- addCompleteProductToIndex(p);
- // now remove its entry from the cache
- CATALOG_CACHE.remove(product.getProductId());
+ + product.getProductId() + "]");
+ addCompleteProductToIndex(p);
+ // now remove its entry from the cache
+ CATALOG_CACHE.remove(product.getProductId());
}
}
+ else{
+ // move product from index to cache
+ // it will be moved back after metadata is added
+ CompleteProduct p = getCompleteProductById(product.getProductId(), true, true);
+ LOG.log(Level.FINE, "Product not found in local cache, retrieved from index");
+ removeProduct(product);
+
+ }
}
/*
@@ -185,15 +185,20 @@ public class LuceneCatalog implements Catalog {
*/
public synchronized void removeMetadata(Metadata m, Product product)
throws CatalogException {
- CompleteProduct p = CATALOG_CACHE.get(product.getProductId());
-
- if (p == null) {
- // not in local cache, get doc and rewrite index
+ CompleteProduct p=null;
+
+ if(product.getProductId()!=null && CATALOG_CACHE.containsKey(product.getProductId())) {
+ p = CATALOG_CACHE.get(product.getProductId());
+ }
+ else{
String prodId = product.getProductId();
p = getCompleteProductById(prodId, true, true);
removeProductDocument(product);
}
+
+
+
Metadata currMet = p.getMetadata();
List<String> metadataTypes = new ArrayList<String>();
@@ -238,29 +243,31 @@ public class LuceneCatalog implements Catalog {
*/
public synchronized void addProduct(Product product)
throws CatalogException {
- CompleteProduct p = CATALOG_CACHE.get(product
- .getProductId());
+ if(product.getProductId()!=null && CATALOG_CACHE.containsKey(product.getProductId())) {
+ throw new CatalogException(
+ "Attempt to add a product that already existed: product: ["
+ + product.getProductName() + "]");
+
+
- if (p == null) {
+
+
+ } else {
// haven't cached this product yet, so let's cache it
CompleteProduct completeProduct = new CompleteProduct();
// NOTE: reuse existing ID if possible
if (product.getProductId() == null) {
- synchronized (completeProduct) {
- // now generate a unique ID for the product
- UUID prodUUID = generator.generateTimeBasedUUID();
- product.setProductId(prodUUID.toString());
- }
+ synchronized (completeProduct) {
+ // now generate a unique ID for the product
+ UUID prodUUID = generator.generateTimeBasedUUID();
+ product.setProductId(prodUUID.toString());
+ }
}
completeProduct.setProduct(product);
CATALOG_CACHE.put(product.getProductId(), completeProduct);
- } else {
- throw new CatalogException(
- "Attempt to add a product that already existed: product: ["
- + product.getProductName() + "]");
}
}
@@ -272,7 +279,7 @@ public class LuceneCatalog implements Catalog {
*/
public synchronized void modifyProduct(Product product)
throws CatalogException {
- if (CATALOG_CACHE.get(product.getProductId()) != null) {
+ if (product.getProductId()!=null && CATALOG_CACHE.containsKey(product.getProductId())) {
LOG.log(Level.FINE, "Modifying product: [" + product.getProductId()
+ "]: found product in cache!");
CompleteProduct cp = CATALOG_CACHE.get(product
@@ -326,29 +333,28 @@ public class LuceneCatalog implements Catalog {
*/
public synchronized void addProductReferences(Product product)
throws CatalogException {
- CompleteProduct p = CATALOG_CACHE.get(product
+ if(product.getProductId()!=null && CATALOG_CACHE.containsKey(product.getProductId())) {
+ CompleteProduct p = CATALOG_CACHE.get(product
.getProductId());
-
- if (p == null) {
- // move product from index to cache
- // it will be moved back after metadata is added
- p = getCompleteProductById(product.getProductId(), true, true);
- LOG.log(Level.FINE, "Product not found in local cache, retrieved from index");
- removeProduct(product);
- }
-
- if (p != null) {
p.getProduct().setProductReferences(product.getProductReferences());
- if (hasMetadataAndRefs(p)) {
- LOG.log(Level.FINE,
+ if (hasMetadataAndRefs(p)) {
+ LOG.log(Level.FINE,
"metadata and references present for product: ["
- + product.getProductId() + "]");
- addCompleteProductToIndex(p);
- // now remove its entry from the cache
- CATALOG_CACHE.remove(product.getProductId());
- }
+ + product.getProductId() + "]");
+ addCompleteProductToIndex(p);
+ // now remove its entry from the cache
+ CATALOG_CACHE.remove(product.getProductId());
+ }
+
}
+ else{
+ // move product from index to cache
+ // it will be moved back after metadata is added
+ CompleteProduct p = getCompleteProductById(product.getProductId(), true, true);
+ LOG.log(Level.FINE, "Product not found in local cache, retrieved from index");
+ removeProduct(product);
+ }
}
/*
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
index 65b84a6..4be4dc1 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
@@ -65,12 +65,12 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.Map;
+import java.util.Hashtable;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -228,7 +228,7 @@ public class XmlRpcFileManager {
int pageNum) throws CatalogException {
ProductType type = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
- Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
ProductPage prodPage;
@@ -271,6 +271,21 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductPage(page);
}
+ public Hashtable<String, Object> getFirstPage(
+ Hashtable<String, Object> productTypeHash) {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ ProductPage page = catalog.getFirstPage(type);
+ try {
+ setProductType(page.getPageProducts());
+ } catch (Exception e) {
+ LOG.log(Level.WARNING,
+ "Unable to set product types for product page list: ["
+ + page + "]");
+ }
+ return XmlRpcStructFactory.getXmlRpcProductPage(page);
+ }
+
public Map<String, Object> getLastPage(
Map<String, Object> productTypeHash) {
ProductType type = XmlRpcStructFactory
@@ -339,7 +354,15 @@ public class XmlRpcFileManager {
return true;
}
- public int getNumProducts(Map<String, Object> productTypeHash)
+ public synchronized boolean setProductTransferStatus(
+ Hashtable<String, Object> productHash)
+ throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ catalog.setProductTransferStatus(product);
+ return true;
+ }
+
+ public int getNumProducts(Map<String, Object> productTypeHash)
throws CatalogException {
int numProducts;
@@ -359,13 +382,33 @@ public class XmlRpcFileManager {
return numProducts;
}
- public List<Map<String, Object>> getTopNProducts(int n)
+ public int getNumProducts(Hashtable<String, Object> productTypeHash)
+ throws CatalogException {
+ int numProducts;
+
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+
+ try {
+ numProducts = catalog.getNumProducts(type);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Exception when getting num products: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+
+ return numProducts;
+ }
+
+ public List<Map<String, Object>> getTopNProductsMap(int n)
throws CatalogException {
List<Product> topNProducts;
try {
topNProducts = catalog.getTopNProducts(n);
- return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
+ return XmlRpcStructFactory.getXmlRpcProductListMap(topNProducts);
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
LOG.log(Level.WARNING,
@@ -375,6 +418,42 @@ public class XmlRpcFileManager {
}
}
+ public List<Hashtable<String, Object>> getTopNProducts(int n)
+ throws CatalogException {
+ List<Product> topNProducts;
+
+ try {
+ topNProducts = catalog.getTopNProducts(n);
+ return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Exception when getting topN products: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+ }
+
+ public List<Hashtable<String, Object>> getTopNProducts(int n,
+ Hashtable<String, Object> productTypeHash)
+ throws CatalogException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ List<Product> topNProducts;
+
+ try {
+ topNProducts = catalog.getTopNProducts(n, type);
+ return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Exception when getting topN products by product type: ["
+ + type.getProductTypeId() + "]: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+
+ }
public List<Map<String, Object>> getTopNProducts(int n,
Map<String, Object> productTypeHash)
throws CatalogException {
@@ -384,7 +463,7 @@ public class XmlRpcFileManager {
try {
topNProducts = catalog.getTopNProducts(n, type);
- return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
+ return XmlRpcStructFactory.getXmlRpcProductListMap(topNProducts);
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
LOG.log(Level.WARNING,
@@ -408,6 +487,12 @@ public class XmlRpcFileManager {
return this.getMetadata(product).getMap();
}
+ public Hashtable<String, Object> getMetadata(
+ Hashtable<String, Object> productHash) throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return this.getMetadata(product).getHashTable();
+ }
+
public Map<String, Object> getReducedMetadata(
Map<String, Object> productHash, Vector<String> elements)
throws CatalogException {
@@ -415,6 +500,12 @@ public class XmlRpcFileManager {
return this.getReducedMetadata(product, elements).getMap();
}
+ public Hashtable<String, Object> getReducedMetadata(
+ Hashtable<String, Object> productHash, Vector<String> elements)
+ throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return this.getReducedMetadata(product, elements).getHashTable();
+ }
public List<Map<String, Object>> getProductTypes()
throws RepositoryManagerException {
List<ProductType> productTypeList;
@@ -440,7 +531,7 @@ public class XmlRpcFileManager {
try {
referenceList = catalog.getProductReferences(product);
- return XmlRpcStructFactory.getXmlRpcReferences(referenceList);
+ return XmlRpcStructFactory.getXmlRpcReferencesMap(referenceList);
} catch (CatalogException e) {
LOG.log(Level.SEVERE, e.getMessage());
LOG.log(Level.SEVERE, "Unable to obtain references for product: ["
@@ -451,6 +542,24 @@ public class XmlRpcFileManager {
}
+ public List<Hashtable<String, Object>> getProductReferences(
+ Hashtable<String, Object> productHash)
+ throws CatalogException {
+ List<Reference> referenceList;
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+
+ try {
+ referenceList = catalog.getProductReferences(product);
+ return XmlRpcStructFactory.getXmlRpcReferences(referenceList);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "Unable to obtain references for product: ["
+ + product.getProductName() + "]: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+
+ }
public Map<String, Object> getProductById(String productId)
throws CatalogException {
Product product = null;
@@ -517,7 +626,7 @@ public class XmlRpcFileManager {
try {
productList = catalog.getProductsByProductType(type);
- return XmlRpcStructFactory.getXmlRpcProductList(productList);
+ return XmlRpcStructFactory.getXmlRpcProductListMap(productList);
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
LOG.log(Level.SEVERE,
@@ -527,6 +636,24 @@ public class XmlRpcFileManager {
}
}
+ public List<Hashtable<String, Object>> getProductsByProductType(
+ Hashtable<String, Object> productTypeHash)
+ throws CatalogException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ List<Product> productList;
+
+ try {
+ productList = catalog.getProductsByProductType(type);
+ return XmlRpcStructFactory.getXmlRpcProductList(productList);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining products by product type for type: ["
+ + type.getName() + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+ }
public List<Map<String, Object>> getElementsByProductType(
Map<String, Object> productTypeHash)
throws ValidationLayerException {
@@ -536,6 +663,7 @@ public class XmlRpcFileManager {
try {
elementList = catalog.getValidationLayer().getElements(type);
+ Map hm = new ConcurrentHashMap();
return XmlRpcStructFactory.getXmlRpcElementList(elementList);
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
@@ -578,11 +706,11 @@ public class XmlRpcFileManager {
}
}
- public List<Map<String, Object>> complexQuery(
+ public List<Map<String, Object>> complexQueryMap(
Map<String, Object> complexQueryHash) throws CatalogException {
try {
ComplexQuery complexQuery = XmlRpcStructFactory
- .getComplexQueryFromXmlRpc(complexQueryHash);
+ .getComplexQueryFromXmlRpcMap(complexQueryHash);
// get ProductTypes
List<ProductType> productTypes;
@@ -631,31 +759,108 @@ public class XmlRpcFileManager {
.getSortByMetKey());
}
- return XmlRpcStructFactory.getXmlRpcQueryResults(queryResults);
+ return XmlRpcStructFactory.getXmlRpcQueryResultsMap(queryResults);
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
throw new CatalogException("Failed to perform complex query : "
+ e.getMessage(), e);
}
}
-
+
+ public List<Hashtable<String, Object>> complexQuery(
+ Hashtable<String, Object> complexQueryHash) throws CatalogException {
+ try {
+ ComplexQuery complexQuery = XmlRpcStructFactory
+ .getComplexQueryFromXmlRpc(complexQueryHash);
+
+ // get ProductTypes
+ List<ProductType> productTypes;
+ if (complexQuery.getReducedProductTypeNames() == null) {
+ productTypes = this.repositoryManager.getProductTypes();
+ } else {
+ productTypes = new Vector<ProductType>();
+ for (String productTypeName : complexQuery
+ .getReducedProductTypeNames()) {
+ productTypes.add(this.repositoryManager
+ .getProductTypeByName(productTypeName));
+ }
+ }
+
+ // get Metadata
+ List<QueryResult> queryResults = new LinkedList<QueryResult>();
+ for (ProductType productType : productTypes) {
+ List<String> productIds = catalog.query(this.getCatalogQuery(
+ complexQuery, productType), productType);
+ for (String productId : productIds) {
+ Product product = catalog.getProductById(productId);
+ product.setProductType(productType);
+ QueryResult qr = new QueryResult(product, this
+ .getReducedMetadata(product, complexQuery
+ .getReducedMetadata()));
+ qr.setToStringFormat(complexQuery
+ .getToStringResultFormat());
+ queryResults.add(qr);
+ }
+ }
+
+ LOG.log(Level.INFO, "Query returned " + queryResults.size()
+ + " results");
+
+ // filter query results
+ if (complexQuery.getQueryFilter() != null) {
+ queryResults = applyFilterToResults(queryResults, complexQuery
+ .getQueryFilter());
+ LOG.log(Level.INFO, "Filter returned " + queryResults.size()
+ + " results");
+ }
+
+ // sort query results
+ if (complexQuery.getSortByMetKey() != null) {
+ queryResults = sortQueryResultList(queryResults, complexQuery
+ .getSortByMetKey());
+ }
+
+ return XmlRpcStructFactory.getXmlRpcQueryResults(queryResults);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException("Failed to perform complex query : "
+ + e.getMessage(), e);
+ }
+ }
public List<Map<String, Object>> query(
Map<String, Object> queryHash,
Map<String, Object> productTypeHash)
throws CatalogException {
- Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
ProductType type = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
- return XmlRpcStructFactory.getXmlRpcProductList(this.query(query, type));
+ return XmlRpcStructFactory.getXmlRpcProductListMap(this.query(query, type));
}
- public Map<String, Object> getProductTypeByName(String productTypeName)
+ public List<Hashtable<String, Object>> query(
+ Hashtable<String, Object> queryHash,
+ Hashtable<String, Object> productTypeHash)
+ throws CatalogException {
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ return XmlRpcStructFactory.getXmlRpcProductList(this.query(query, type));
+ }
+
+ public Map<String, Object> getProductTypeByNameMap(String productTypeName)
throws RepositoryManagerException {
ProductType type = repositoryManager
.getProductTypeByName(productTypeName);
return XmlRpcStructFactory.getXmlRpcProductType(type);
}
+ public Hashtable<String, Object> getProductTypeByName(String productTypeName)
+ throws RepositoryManagerException {
+ ProductType type = repositoryManager
+ .getProductTypeByName(productTypeName);
+ return XmlRpcStructFactory.getXmlRpcProductType(type);
+ }
+
public Map<String, Object> getProductTypeById(String productTypeId)
throws RepositoryManagerException {
ProductType type;
@@ -683,12 +888,27 @@ public class XmlRpcFileManager {
return true;
}
+ public synchronized boolean updateMetadata(Hashtable<String, Object> productHash,
+ Hashtable<String, Object> metadataHash) throws CatalogException{
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ Metadata met = new Metadata();
+ met.addMetadata(metadataHash);
+ Metadata oldMetadata = catalog.getMetadata(product);
+ catalog.removeMetadata(oldMetadata, product);
+ catalog.addMetadata(met, product);
+ return true;
+ }
public synchronized String catalogProduct(Map<String, Object> productHash)
throws CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return catalogProduct(p);
}
+ public synchronized String catalogProduct(Hashtable<String, Object> productHash)
+ throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return catalogProduct(p);
+ }
public synchronized boolean addMetadata(Map<String, Object> productHash,
Map<String, String> metadata) throws CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
@@ -697,13 +917,27 @@ public class XmlRpcFileManager {
return addMetadata(p, m) != null;
}
+ public synchronized boolean addMetadata(Hashtable<String, Object> productHash,
+ Hashtable<String, String> metadata) throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ Metadata m = new Metadata();
+ m.addMetadata((Map)metadata);
+ return addMetadata(p, m) != null;
+ }
public synchronized boolean addProductReferences(Map<String, Object> productHash)
throws CatalogException {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return addProductReferences(product);
}
- public String ingestProduct(Map<String, Object> productHash,
+ public synchronized boolean addProductReferences(Hashtable<String, Object> productHash)
+ throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return addProductReferences(product);
+ }
+
+
+ public String ingestProduct(Map<String, Object> productHash,
Map<String, String> metadata, boolean clientTransfer)
throws
CatalogException {
@@ -779,6 +1013,81 @@ public class XmlRpcFileManager {
}
+ public String ingestProduct(Hashtable<String, Object> productHash,
+ Hashtable<String, String> metadata, boolean clientTransfer)
+ throws
+ CatalogException {
+
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+
+ try {
+ // first, create the product
+ p.setTransferStatus(Product.STATUS_TRANSFER);
+ catalogProduct(p);
+
+ // now add the metadata
+ Metadata m = new Metadata();
+ m.addMetadata((Map)metadata);
+ Metadata expandedMetdata = addMetadata(p, m);
+
+ // version the product
+ if (!clientTransfer || (Boolean.getBoolean("org.apache.oodt.cas.filemgr.serverside.versioning"))) {
+ Versioner versioner;
+ try {
+ versioner = GenericFileManagerObjectFactory
+ .getVersionerFromClassName(p.getProductType().getVersioner());
+ if (versioner != null) {
+ versioner.createDataStoreReferences(p, expandedMetdata);
+ }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE,
+ "ingestProduct: VersioningException when versioning Product: "
+ + p.getProductName() + " with Versioner "
+ + p.getProductType().getVersioner() + ": Message: "
+ + e.getMessage());
+ throw new VersioningException(e);
+ }
+
+ // add the newly versioned references to the data store
+ addProductReferences(p);
+ }
+
+ if (!clientTransfer) {
+ LOG.log(Level.FINEST,
+ "File Manager: ingest: no client transfer enabled, "
+ + "server transfering product: [" + p.getProductName() + "]");
+
+ // now transfer the product
+ try {
+ dataTransfer.transferProduct(p);
+ // now update the product's transfer status in the data store
+ p.setTransferStatus(Product.STATUS_RECEIVED);
+
+ try {
+ catalog.setProductTransferStatus(p);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE, "ingestProduct: CatalogException "
+ + "when updating product transfer status for Product: "
+ + p.getProductName() + " Message: " + e.getMessage());
+ throw e;
+ }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE,
+ "ingestProduct: DataTransferException when transfering Product: "
+ + p.getProductName() + ": Message: " + e.getMessage());
+ throw new DataTransferException(e);
+ }
+ }
+
+ // that's it!
+ return p.getProductId();
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException("Error ingesting product [" + p + "] : "
+ + e.getMessage(),e);
+ }
+
+ }
public byte[] retrieveFile(String filePath, int offset, int numBytes)
throws DataTransferException {
FileInputStream is = null;
@@ -933,6 +1242,73 @@ public class XmlRpcFileManager {
}
}
+ public boolean moveProduct(Hashtable<String, Object> productHash, String newPath)
+ throws DataTransferException {
+
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+
+ // first thing we care about is if the product is flat or heirarchical
+ if (p.getProductStructure().equals(Product.STRUCTURE_FLAT)) {
+ // we just need to get its first reference
+ if (p.getProductReferences() == null || (p.getProductReferences().size() != 1)) {
+ throw new DataTransferException(
+ "Flat products must have a single reference: cannot move");
+ }
+
+ // okay, it's fine to move it
+ // first, we need to update the data store ref
+ Reference r = p.getProductReferences().get(0);
+ if (r.getDataStoreReference().equals(
+ new File(newPath).toURI().toString())) {
+ throw new DataTransferException("cannot move product: ["
+ + p.getProductName() + "] to same location: ["
+ + r.getDataStoreReference() + "]");
+ }
+
+ // create a copy of the current data store path: we'll need it to
+ // do the data transfer
+ Reference copyRef = new Reference(r);
+
+ // update the copyRef to have the data store ref as the orig ref
+ // the the newLoc as the new ref
+ copyRef.setOrigReference(r.getDataStoreReference());
+ copyRef.setDataStoreReference(new File(newPath).toURI().toString());
+
+ p.getProductReferences().clear();
+ p.getProductReferences().add(copyRef);
+
+ // now transfer it
+ try {
+ this.dataTransfer.transferProduct(p);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
+ }
+
+ // now delete the original copy
+ try {
+ if (!new File(new URI(copyRef.getOrigReference())).delete()) {
+ LOG.log(Level.WARNING, "Deletion of original file: ["
+ + r.getDataStoreReference()
+ + "] on product move returned false");
+ }
+ } catch (URISyntaxException e) {
+ throw new DataTransferException(
+ "URI Syntax exception trying to remove original product ref: Message: "
+ + e.getMessage(), e);
+ }
+
+ // now save the updated reference
+ try {
+ this.catalog.modifyProduct(p);
+ return true;
+ } catch (CatalogException e) {
+ throw new DataTransferException(e.getMessage(),e);
+ }
+ } else {
+ throw new UnsupportedOperationException(
+ "Moving of heirarhical and stream products not supported yet");
+ }
+ }
public boolean removeFile(String filePath) throws DataTransferException, IOException {
// TODO(bfoster): Clean this up so that it deletes by product not file.
Product product = new Product();
@@ -980,8 +1356,18 @@ public class XmlRpcFileManager {
ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
return this.getCatalogValues(m, productType).getMap();
}
-
- public Map<String, Object> getOrigValues(
+
+ public Hashtable<String, Object> getCatalogValues(
+ Hashtable<String, Object> metadataHash,
+ Hashtable<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ Metadata m = new Metadata();
+ m.addMetadata(metadataHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return this.getCatalogValues(m, productType).getHashTable();
+ }
+
+ public Map<String, Object> getOrigValues(
Map<String, Object> metadataHash,
Map<String, Object> productTypeHash)
throws RepositoryManagerException {
@@ -990,17 +1376,36 @@ public class XmlRpcFileManager {
ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
return this.getOrigValues(m, productType).getMap();
}
+
+ public Hashtable<String, Object> getOrigValues(
+ Hashtable<String, Object> metadataHash,
+ Hashtable<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ Metadata m = new Metadata();
+ m.addMetadata(metadataHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return this.getOrigValues(m, productType).getHashTable();
+ }
public Map<String, Object> getCatalogQuery(
Map<String, Object> queryHash,
Map<String, Object> productTypeHash)
throws RepositoryManagerException, QueryFormulationException {
- Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
}
- public static void main(String[] args) throws IOException {
+ public Hashtable<String, Object> getCatalogQuery(
+ Hashtable<String, Object> queryHash,
+ Hashtable<String, Object> productTypeHash)
+ throws RepositoryManagerException, QueryFormulationException {
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
+ }
+
+ public static void main(String[] args) throws IOException {
int portNum = -1;
String usage = "FileManager --portNum <port number for xml rpc service>\n";
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
index 268f32d..5c471d9 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
@@ -54,6 +54,7 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
+import java.util.Hashtable;
import java.util.Map;
import java.util.List;
import java.util.Vector;
@@ -222,7 +223,7 @@ public class XmlRpcFileManagerClient {
public boolean transferringProduct(Product product)
throws DataTransferException {
Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
+ Hashtable<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
@@ -635,10 +636,10 @@ public class XmlRpcFileManagerClient {
Vector<Object> argList = new Vector<Object>();
argList.add(n);
- Vector<Map<String, Object>> topNProducts;
+ Vector<Hashtable<String, Object>> topNProducts;
try {
- topNProducts = (Vector<Map<String, Object>>) client.execute(
+ topNProducts = (Vector<Hashtable<String, Object>>) client.execute(
"filemgr.getTopNProducts", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -659,10 +660,10 @@ public class XmlRpcFileManagerClient {
.getXmlRpcProductType(type);
argList.add(productTypeHash);
- Vector<Map<String, Object>> topNProducts;
+ Vector<Hashtable<String, Object>> topNProducts;
try {
- topNProducts = (Vector<Map<String, Object>>) client.execute(
+ topNProducts = (Vector<Hashtable<String, Object>>) client.execute(
"filemgr.getTopNProducts", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -711,7 +712,7 @@ public class XmlRpcFileManagerClient {
Vector<Object> argList = new Vector<Object>();
argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
- argList.add(metadata.getMap());
+ argList.add(metadata.getHashTable());
try {
client.execute("filemgr.addMetadata", argList);
@@ -726,7 +727,7 @@ public class XmlRpcFileManagerClient {
throws CatalogException {
Vector<Object> argList = new Vector<Object>();
argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
- argList.add(met.getMap());
+ argList.add(met.getHashTable());
boolean result;
@@ -868,10 +869,10 @@ public class XmlRpcFileManagerClient {
.getXmlRpcProductType(type);
argList.add(productTypeHash);
- Vector<Map<String, Object>> productVector;
+ Vector<Hashtable<String, Object>> productVector;
try {
- productVector = (Vector<Map<String, Object>>) client.execute(
+ productVector = (Vector<Hashtable<String, Object>>) client.execute(
"filemgr.getProductsByProductType", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -895,10 +896,10 @@ public class XmlRpcFileManagerClient {
argList.add(productTypeHash);
- Vector<Map<String, Object>> elementVector;
+ Vector<Hashtable<String, Object>> elementVector;
try {
- elementVector = (Vector<Map<String, Object>>) client.execute(
+ elementVector = (Vector<Hashtable<String, Object>>) client.execute(
"filemgr.getElementsByProductType", argList);
} catch (XmlRpcException e) {
throw new ValidationLayerException(e);
@@ -919,10 +920,10 @@ public class XmlRpcFileManagerClient {
Vector<Object> argList = new Vector<Object>();
argList.add(elementId);
- Map<String, Object> elementHash;
+ Hashtable<String, Object> elementHash;
try {
- elementHash = (Map<String, Object>) client.execute(
+ elementHash = (Hashtable<String, Object>) client.execute(
"filemgr.getElementById", argList);
} catch (XmlRpcException e) {
throw new ValidationLayerException(e);
@@ -943,10 +944,10 @@ public class XmlRpcFileManagerClient {
Vector<Object> argList = new Vector<Object>();
argList.add(elementName);
- Map<String, Object> elementHash;
+ Hashtable<String, Object> elementHash;
try {
- elementHash = (Map<String, Object>) client.execute(
+ elementHash = (Hashtable<String, Object>) client.execute(
"filemgr.getElementByName", argList);
} catch (XmlRpcException e) {
throw new ValidationLayerException(e);
@@ -968,10 +969,10 @@ public class XmlRpcFileManagerClient {
argList.add(elementName);
argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- Map<String, Object> elementHash;
+ Hashtable<String, Object> elementHash;
try {
- elementHash = (Map<String, Object>) client.execute(
+ elementHash = (Hashtable<String, Object>) client.execute(
"filemgr.getElementByName", argList);
} catch (XmlRpcException e) {
throw new ValidationLayerException(e);
@@ -989,12 +990,12 @@ public class XmlRpcFileManagerClient {
public List<QueryResult> complexQuery(ComplexQuery complexQuery)
throws CatalogException {
try {
- Map<String, Object> complexQueryHash = XmlRpcStructFactory
+ Hashtable<String, Object> complexQueryHash = XmlRpcStructFactory
.getXmlRpcComplexQuery(complexQuery);
Vector<Object> argList = new Vector<Object>();
argList.add(complexQueryHash);
@SuppressWarnings("unchecked")
- Vector<Map<String, Object>> queryResultHashVector = (Vector<Map<String, Object>>) client
+ Vector<Hashtable<String, Object>> queryResultHashVector = (Vector<Hashtable<String, Object>>) client
.execute("filemgr.complexQuery", argList);
return XmlRpcStructFactory
.getQueryResultsFromXmlRpc(queryResultHashVector);
@@ -1015,10 +1016,10 @@ public class XmlRpcFileManagerClient {
argList.add(queryHash);
argList.add(typeHash);
- Vector<Map<String, Object>> productVector;
+ Vector<Hashtable<String, Object>> productVector;
try {
- productVector = (Vector<Map<String, Object>>) client.execute(
+ productVector = (Vector<Hashtable<String, Object>>) client.execute(
"filemgr.query", argList);
} catch (XmlRpcException e) {
LOG.log(Level.SEVERE, e.getMessage());
@@ -1039,12 +1040,12 @@ public class XmlRpcFileManagerClient {
@SuppressWarnings("unchecked")
public ProductType getProductTypeByName(String productTypeName)
throws RepositoryManagerException {
- Map<String, Object> productTypeHash;
+ Hashtable<String, Object> productTypeHash;
Vector<Object> argList = new Vector<Object>();
argList.add(productTypeName);
try {
- productTypeHash = (Map<String, Object>) client.execute(
+ productTypeHash = (Hashtable<String, Object>) client.execute(
"filemgr.getProductTypeByName", argList);
} catch (XmlRpcException e) {
throw new RepositoryManagerException(e.getLocalizedMessage());
@@ -1063,12 +1064,12 @@ public class XmlRpcFileManagerClient {
@SuppressWarnings("unchecked")
public ProductType getProductTypeById(String productTypeId)
throws RepositoryManagerException {
- Map<String, Object> productTypeHash;
+ Hashtable<String, Object> productTypeHash;
Vector<Object> argList = new Vector<Object>();
argList.add(productTypeId);
try {
- productTypeHash = (Map<String, Object>) client.execute(
+ productTypeHash = (Hashtable<String, Object>) client.execute(
"filemgr.getProductTypeById", argList);
} catch (XmlRpcException e) {
throw new RepositoryManagerException(e);
@@ -1113,13 +1114,13 @@ public class XmlRpcFileManagerClient {
throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Vector<Map<String, Object>> productReferenceVector;
- Map<String, Object> productHash = XmlRpcStructFactory
+ Vector<Hashtable<String, Object>> productReferenceVector;
+ Hashtable<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
try {
- productReferenceVector = (Vector<Map<String, Object>>) client
+ productReferenceVector = (Vector<Hashtable<String, Object>>) client
.execute("filemgr.getProductReferences", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1139,11 +1140,11 @@ public class XmlRpcFileManagerClient {
public Product getProductById(String productId) throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash;
+ Hashtable<String, Object> productHash;
argList.add(productId);
try {
- productHash = (Map<String, Object>) client.execute(
+ productHash = (Hashtable<String, Object>) client.execute(
"filemgr.getProductById", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1162,11 +1163,11 @@ public class XmlRpcFileManagerClient {
public Product getProductByName(String productName) throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash;
+ Hashtable<String, Object> productHash;
argList.add(productName);
try {
- productHash = (Map<String, Object>) client.execute(
+ productHash = (Hashtable<String, Object>) client.execute(
"filemgr.getProductByName", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1186,10 +1187,10 @@ public class XmlRpcFileManagerClient {
try {
// ingest product
Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
+ Hashtable<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
- argList.add(metadata.getMap());
+ argList.add(metadata.getHashTable());
argList.add(clientTransfer);
String productId = (String) client.execute("filemgr.ingestProduct",
argList);
@@ -1321,7 +1322,7 @@ public class XmlRpcFileManagerClient {
public Metadata getCatalogValues(Metadata metadata, ProductType productType)
throws XmlRpcException, IOException {
Vector<Object> args = new Vector<Object>();
- args.add(metadata.getMap());
+ args.add(metadata.getHashTable());
args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
Metadata m = new Metadata();
@@ -1335,7 +1336,7 @@ public class XmlRpcFileManagerClient {
public Metadata getOrigValues(Metadata metadata, ProductType productType)
throws XmlRpcException, IOException {
Vector<Object> args = new Vector<Object>();
- args.add(metadata.getMap());
+ args.add(metadata.getHashTable());
args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
Metadata m = new Metadata();
@@ -1352,7 +1353,7 @@ public class XmlRpcFileManagerClient {
args.add(XmlRpcStructFactory.getXmlRpcQuery(query));
args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
return XmlRpcStructFactory
- .getQueryFromXmlRpc((Map<String, Object>) this.client
+ .getQueryFromXmlRpc((Hashtable<String, Object>) this.client
.execute("filemgr.getCatalogQuery", args));
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
index 3ce0db1..a7b4964 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
@@ -37,11 +37,13 @@ import org.apache.oodt.cas.filemgr.structs.query.filter.FilterAlgor;
import org.apache.oodt.cas.filemgr.structs.type.TypeHandler;
import org.apache.oodt.cas.metadata.Metadata;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.HashMap;
+import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
/**
@@ -80,8 +82,8 @@ public final class XmlRpcStructFactory {
FileTransferStatus status = new FileTransferStatus();
status.setBytesTransferred(Long.parseLong(statusHash
.get("bytesTransferred").toString()));
- status.setParentProduct(getProductFromXmlRpc((Map<String, Object>) statusHash.get("parentProduct")));
- status.setFileRef(getReferenceFromXmlRpc((Map<String, Object>) statusHash.get("fileRef")));
+ status.setParentProduct(getProductFromXmlRpc((Hashtable<String, Object>) statusHash.get("parentProduct")));
+ status.setFileRef(getReferenceFromXmlRpc((Hashtable<String, Object>) statusHash.get("fileRef")));
return status;
}
@@ -111,7 +113,17 @@ public final class XmlRpcStructFactory {
return statuses;
}
- public static Map<String, Object> getXmlRpcProductPage(ProductPage page) {
+ public static Hashtable<String, Object> getXmlRpcProductPage(ProductPage page) {
+ Hashtable<String, Object>productPageHash = new Hashtable<String, Object>();
+ productPageHash.put("totalPages", page.getTotalPages());
+ productPageHash.put("pageNum", page.getPageNum());
+ productPageHash.put("pageSize", page.getPageSize());
+ productPageHash.put("pageProducts", getXmlRpcProductList(page
+ .getPageProducts()));
+ return productPageHash;
+ }
+
+ public static Map<String, Object> getXmlRpcProductPageMap(ProductPage page) {
Map<String, Object>productPageHash = new ConcurrentHashMap<String, Object>();
productPageHash.put("totalPages", page.getTotalPages());
productPageHash.put("pageNum", page.getPageNum());
@@ -128,12 +140,36 @@ public final class XmlRpcStructFactory {
page
.setPageSize((Integer) productPageHash.get("pageSize"));
page.setTotalPages((Integer) productPageHash.get("totalPages"));
- page.setPageProducts(getProductListFromXmlRpc((Vector<Map<String, Object>>) productPageHash
+ page.setPageProducts(getProductListFromXmlRpc((Vector<Hashtable<String, Object>>) productPageHash
.get("pageProducts")));
return page;
}
-
- public static Map<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
+
+ public static Hashtable<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
+ Hashtable<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
+ if (complexQuery.getReducedProductTypeNames() != null) {
+ complexQueryHash
+ .put("reducedProductTypeNames", new Vector<String>(complexQuery.getReducedProductTypeNames()));
+ } else {
+ complexQueryHash.put("reducedProductTypeNames", new Vector<String>());
+ }
+ if (complexQuery.getReducedMetadata() != null) {
+ complexQueryHash.put("reducedMetadata", new Vector<String>(complexQuery.getReducedMetadata()));
+ } else {
+ complexQueryHash.put("reducedMetadata", new Vector<String>());
+ }
+ if (complexQuery.getSortByMetKey() != null) {
+ complexQueryHash.put("sortByMetKey", complexQuery.getSortByMetKey());
+ }
+ if (complexQuery.getToStringResultFormat() != null) {
+ complexQueryHash.put("toStringResultFormat", complexQuery.getToStringResultFormat());
+ }
+ if (complexQuery.getQueryFilter() != null) {
+ complexQueryHash.put("queryFilter", getXmlRpcQueryFilter(complexQuery.getQueryFilter()));
+ }
+ return complexQueryHash;
+ }
+ public static Map<String, Object> getXmlRpcComplexQueryMap(ComplexQuery complexQuery) {
Map<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
if (complexQuery.getReducedProductTypeNames() != null) {
complexQueryHash
@@ -157,9 +193,8 @@ public final class XmlRpcStructFactory {
}
return complexQueryHash;
}
-
@SuppressWarnings("unchecked")
- public static ComplexQuery getComplexQueryFromXmlRpc(Map<String, Object> complexQueryHash) {
+ public static ComplexQuery getComplexQueryFromXmlRpc(Hashtable<String, Object> complexQueryHash) {
ComplexQuery complexQuery = new ComplexQuery();
complexQuery.setCriteria(getQueryFromXmlRpc(complexQueryHash).getCriteria());
if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
@@ -176,7 +211,24 @@ public final class XmlRpcStructFactory {
}
return complexQuery;
}
-
+
+ public static ComplexQuery getComplexQueryFromXmlRpcMap(Map<String, Object> complexQueryHash) {
+ ComplexQuery complexQuery = new ComplexQuery();
+ complexQuery.setCriteria(getQueryFromXmlRpcMap(complexQueryHash).getCriteria());
+ if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
+ complexQuery.setReducedProductTypeNames((Vector<String>) complexQueryHash.get("reducedProductTypeNames"));
+ }
+ if (((Vector<String>) complexQueryHash.get("reducedMetadata")).size() > 0) {
+ complexQuery.setReducedMetadata((Vector<String>) complexQueryHash.get("reducedMetadata"));
+ }
+ complexQuery.setSortByMetKey((String) complexQueryHash.get("sortByMetKey"));
+ complexQuery.setToStringResultFormat((String) complexQueryHash.get("toStringResultFormat"));
+ if (complexQueryHash.get("queryFilter") != null) {
+ complexQuery.setQueryFilter(
+ getQueryFilterFromXmlRpc((Map<String, Object>) complexQueryHash.get("queryFilter")));
+ }
+ return complexQuery;
+ }
public static Map<String, Object> getXmlRpcQueryFilter(QueryFilter queryFilter) {
Map<String, Object> queryFilterHash = new ConcurrentHashMap<String, Object>();
queryFilterHash.put("startDateTimeMetKey", queryFilter.getStartDateTimeMetKey());
@@ -213,23 +265,48 @@ public final class XmlRpcStructFactory {
return filterAlgor;
}
- public static Vector<Map<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
+ public static Vector<Hashtable<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
+ Vector<Hashtable<String, Object>> queryResultHashVector = new Vector<Hashtable<String, Object>>();
+ for (QueryResult queryResult : queryResults) {
+ queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
+ }
+ return queryResultHashVector;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcQueryResultsMap(List<QueryResult> queryResults) {
Vector<Map<String, Object>> queryResultHashVector = new Vector<Map<String, Object>>();
for (QueryResult queryResult : queryResults) {
queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
}
return queryResultHashVector;
}
-
- public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Map<String, Object>> queryResultHashVector) {
+
+ public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Hashtable<String, Object>> queryResultHashVector) {
+ List<QueryResult> queryResults = new Vector<QueryResult>();
+ for (Hashtable<String, Object> queryResultHash : queryResultHashVector) {
+ queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
+ }
+ return queryResults;
+ }
+
+ public static List<QueryResult> getQueryResultsFromXmlRpcMap(Vector<Map<String, Object>>
+ queryResultHashVector) {
List<QueryResult> queryResults = new Vector<QueryResult>();
for (Map<String, Object> queryResultHash : queryResultHashVector) {
queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
}
return queryResults;
}
-
- public static Map<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
+ public static Hashtable<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
+ Hashtable<String, Object> queryResultHash = new Hashtable<String, Object>();
+ if (queryResult.getToStringFormat() != null) {
+ queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
+ }
+ queryResultHash.put("product", getXmlRpcProduct(queryResult.getProduct()));
+ queryResultHash.put("metadata", queryResult.getMetadata().getMap());
+ return queryResultHash;
+ }
+ public static Map<String, Object> getXmlRpcQueryResultMap(QueryResult queryResult) {
Map<String, Object> queryResultHash = new ConcurrentHashMap<String, Object>();
if (queryResult.getToStringFormat() != null) {
queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
@@ -241,7 +318,7 @@ public final class XmlRpcStructFactory {
@SuppressWarnings("unchecked")
public static QueryResult getQueryResultFromXmlRpc(Map<String, Object> queryResultHash) {
- Product product = getProductFromXmlRpc((Map<String, Object>) queryResultHash.get("product"));
+ Product product = getProductFromXmlRpc((Hashtable<String, Object>) queryResultHash.get("product"));
Metadata metadata = new Metadata();
metadata.addMetadata((Map<String, Object>) queryResultHash.get("metadata"));
QueryResult queryResult = new QueryResult(product, metadata);
@@ -249,8 +326,8 @@ public final class XmlRpcStructFactory {
return queryResult;
}
- public static Map<String, Object> getXmlRpcProduct(Product product) {
- Map<String, Object> productHash = new ConcurrentHashMap<String, Object>();
+ public static Hashtable<String, Object> getXmlRpcProduct(Product product) {
+ Hashtable<String, Object> productHash = new Hashtable<String, Object>();
if (product.getProductId() != null) {
productHash.put("id", product.getProductId());
}
@@ -277,33 +354,57 @@ public final class XmlRpcStructFactory {
return productHash;
}
- @SuppressWarnings("unchecked")
public static Product getProductFromXmlRpc(Map<?, ?> productHash) {
+ /*Hashtable ht = new Hashtable();
+ ht.putAll(productHash);*/
+ Product product = new Product();
+ product.setProductId((String) productHash.get("id"));
+ product.setProductName((String) productHash.get("name"));
+ if (productHash.get("type") != null) {
+ product.setProductType(getProductTypeFromXmlRpc(
+ (Hashtable<String, Object>) productHash.get("type")));
+ }
+ product.setProductStructure((String) productHash.get("structure"));
+ product.setTransferStatus((String) productHash.get("transferStatus"));
+ if (productHash.get("references") != null) {
+ product.setProductReferences(getReferencesFromXmlRpc(
+ (Vector<Hashtable<String, Object>>) productHash
+ .get("references")));
+ }
+ if (productHash.get("rootReference") != null) {
+ product.setRootRef(getReferenceFromXmlRpc(
+ (Hashtable<String, Object>) productHash.get("rootReference")));
+ }
+ return product;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Product getProductFromXmlRpc(Hashtable<?, ?> productHash) {
Product product = new Product();
product.setProductId((String) productHash.get("id"));
product.setProductName((String) productHash.get("name"));
if (productHash.get("type") != null) {
product.setProductType(getProductTypeFromXmlRpc(
- (Map<String, Object>) productHash.get("type")));
+ (Hashtable<String, Object>) productHash.get("type")));
}
product.setProductStructure((String) productHash.get("structure"));
product.setTransferStatus((String) productHash.get("transferStatus"));
if (productHash.get("references") != null) {
product.setProductReferences(getReferencesFromXmlRpc(
- (Vector<Map<String, Object>>) productHash
+ (Vector<Hashtable<String, Object>>) productHash
.get("references")));
}
if (productHash.get("rootReference") != null) {
product.setRootRef(getReferenceFromXmlRpc(
- (Map<String, Object>) productHash.get("rootReference")));
+ (Hashtable<String, Object>) productHash.get("rootReference")));
}
return product;
}
- public static List<Product> getProductListFromXmlRpc(Vector<Map<String, Object>> productVector) {
+ public static List<Product> getProductListFromXmlRpc(Vector<Hashtable<String, Object>> productVector) {
List<Product> productList = new Vector<Product>();
- for (Map<String, Object> productHash : productVector) {
+ for (Hashtable<String, Object> productHash : productVector) {
Product product = getProductFromXmlRpc(productHash);
productList.add(product);
}
@@ -311,7 +412,7 @@ public final class XmlRpcStructFactory {
return productList;
}
- public static Vector<Map<String, Object>> getXmlRpcProductList(List<Product> products) {
+ public static Vector<Map<String, Object>> getXmlRpcProductListMap(List<Product> products) {
Vector<Map<String, Object>> productVector = new Vector<Map<String, Object>>();
if (products == null) {
@@ -326,6 +427,21 @@ public final class XmlRpcStructFactory {
return productVector;
}
+ public static Vector<Hashtable<String, Object>> getXmlRpcProductList(List<Product> products) {
+ Vector<Hashtable<String, Object>> productVector = new Vector<Hashtable<String, Object>>();
+
+ if (products == null) {
+ return productVector;
+ }
+
+ for (Product product : products) {
+ Hashtable<String, Object> productHash = getXmlRpcProduct(product);
+ productVector.add(productHash);
+ }
+
+ return productVector;
+ }
+
public static Vector<Map<String, Object>> getXmlRpcProductTypeList(List<ProductType> productTypes) {
Vector<Map<String, Object>> productTypeVector = new Vector<Map<String, Object>>();
@@ -350,7 +466,7 @@ public final class XmlRpcStructFactory {
return productTypeList;
}
- public static Map<String, Object> getXmlRpcProductType(ProductType type) {
+ public static Map<String, Object> getXmlRpcProductTypeMap(ProductType type) {
Map<String, Object> productTypeHash = new ConcurrentHashMap<String, Object>();
// TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
productTypeHash.put("id", type.getProductTypeId());
@@ -378,6 +494,34 @@ public final class XmlRpcStructFactory {
return productTypeHash;
}
+ public static Hashtable<String, Object> getXmlRpcProductType(ProductType type) {
+ Hashtable<String, Object> productTypeHash = new Hashtable<String, Object>();
+ // TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
+ productTypeHash.put("id", type.getProductTypeId());
+ if (type.getName() != null) {
+ productTypeHash.put("name", type.getName());
+ }
+ if (type.getDescription() != null) {
+ productTypeHash.put("description", type.getDescription());
+ }
+ if (type.getProductRepositoryPath() != null) {
+ productTypeHash.put("repositoryPath",type.getProductRepositoryPath());
+ }
+ if (type.getVersioner() != null) {
+ productTypeHash.put("versionerClass", type.getVersioner());
+ }
+ if (type.getTypeMetadata() != null) {
+ productTypeHash.put("typeMetadata", type.getTypeMetadata().getHashTable());
+ }
+ if (type.getExtractors() != null) {
+ productTypeHash.put("typeExtractors", getXmlRpcTypeExtractors(type.getExtractors()));
+ }
+ if (type.getHandlers() != null) {
+ productTypeHash.put("typeHandlers", getXmlRpcTypeHandlers(type.getHandlers()));
+ }
+ return productTypeHash;
+ }
+
@SuppressWarnings("unchecked")
public static ProductType getProductTypeFromXmlRpc(Map<String, Object> productTypeHash) {
ProductType type = new ProductType();
@@ -393,18 +537,29 @@ public final class XmlRpcStructFactory {
}
if (productTypeHash.get("typeExtractors") != null) {
type.setExtractors(getTypeExtractorsFromXmlRpc(
- (Vector<Map<String, Object>>) productTypeHash
+ (Vector<Hashtable<String, Object>>) productTypeHash
.get("typeExtractors")));
}
if (productTypeHash.get("typeHandlers") != null) {
type.setHandlers(getTypeHandlersFromXmlRpc(
- (Vector<Map<String, Object>>) productTypeHash
+ (Vector<Hashtable<String, Object>>) productTypeHash
.get("typeHandlers")));
}
return type;
}
- public static Vector<Map<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
+ public static Vector<Hashtable<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
+ Vector<Hashtable<String, Object>> extractorsVector = new Vector<Hashtable<String, Object>>();
+
+ if (extractors != null && extractors.size() > 0) {
+ for (ExtractorSpec spec : extractors) {
+ extractorsVector.add(getXmlRpcExtractorSpec(spec));
+ }
+ }
+
+ return extractorsVector;
+ }
+ public static Vector<Map<String, Object>> getXmlRpcTypeExtractorsMap(List<ExtractorSpec> extractors) {
Vector<Map<String, Object>> extractorsVector = new Vector<Map<String, Object>>();
if (extractors != null && extractors.size() > 0) {
@@ -416,15 +571,26 @@ public final class XmlRpcStructFactory {
return extractorsVector;
}
- public static Map<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
- Map<String, Object> extractorHash = new ConcurrentHashMap<String, Object>();
+ public static Hashtable<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
+ Hashtable<String, Object> extractorHash = new Hashtable<String, Object>();
extractorHash.put("className", spec.getClassName());
extractorHash.put("config",
getXmlRpcProperties(spec.getConfiguration()));
return extractorHash;
}
-
- public static Vector<Map<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
+
+ public static Vector<Hashtable<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
+ Vector<Hashtable<String, Object>> handlersVector = new Vector<Hashtable<String, Object>>();
+
+ if (typeHandlers != null && typeHandlers.size() > 0) {
+ for (TypeHandler typeHandler : typeHandlers) {
+ handlersVector.add(getXmlRpcTypeHandler(typeHandler));
+ }
+ }
+
+ return handlersVector;
+ }
+ public static Vector<Map<String, Object>> getXmlRpcTypeHandlersMap(List<TypeHandler> typeHandlers) {
Vector<Map<String, Object>> handlersVector = new Vector<Map<String, Object>>();
if (typeHandlers != null && typeHandlers.size() > 0) {
@@ -435,8 +601,17 @@ public final class XmlRpcStructFactory {
return handlersVector;
}
-
- public static Map<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
+
+ public static Hashtable<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
+ Hashtable<String, Object> handlerHash = new Hashtable<String, Object>();
+ handlerHash.put("className", typeHandler != null ?
+ typeHandler.getClass().getCanonicalName():"");
+ handlerHash.put("elementName", typeHandler != null ?
+ typeHandler.getElementName():"");
+ return handlerHash;
+ }
+
+ public static Map<String, Object> getXmlRpcTypeHandlerMap(TypeHandler typeHandler) {
Map<String, Object> handlerHash = new ConcurrentHashMap<String, Object>();
handlerHash.put("className", typeHandler != null ?
typeHandler.getClass().getCanonicalName():"");
@@ -445,11 +620,11 @@ public final class XmlRpcStructFactory {
return handlerHash;
}
- public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Map<String, Object>> extractorsVector) {
+ public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Hashtable<String, Object>> extractorsVector) {
List<ExtractorSpec> extractors = new Vector<ExtractorSpec>();
if (extractorsVector != null && extractorsVector.size() > 0) {
- for (Map<String, Object> extractorSpecHash : extractorsVector) {
+ for (Hashtable<String, Object> extractorSpecHash : extractorsVector) {
extractors.add(getExtractorSpecFromXmlRpc(extractorSpecHash));
}
}
@@ -463,16 +638,16 @@ public final class XmlRpcStructFactory {
ExtractorSpec spec = new ExtractorSpec();
spec.setClassName((String) extractorSpecHash.get("className"));
spec
- .setConfiguration(getPropertiesFromXmlRpc((Map<String, String>) extractorSpecHash
+ .setConfiguration(getPropertiesFromXmlRpc((Hashtable<String, String>) extractorSpecHash
.get("config")));
return spec;
}
- public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Map<String, Object>> handlersVector) {
+ public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Hashtable<String, Object>> handlersVector) {
List<TypeHandler> handlers = new Vector<TypeHandler>();
if (handlersVector != null && handlersVector.size() > 0) {
- for (Map<String, Object> typeHandlerHash : handlersVector) {
+ for (Hashtable<String, Object> typeHandlerHash : handlersVector) {
handlers.add(getTypeHandlerFromXmlRpc(typeHandlerHash));
}
}
@@ -481,7 +656,7 @@ public final class XmlRpcStructFactory {
}
public static TypeHandler getTypeHandlerFromXmlRpc(
- Map<String, Object> typeHandlerHash) {
+ Hashtable<String, Object> typeHandlerHash) {
TypeHandler typeHandler = GenericFileManagerObjectFactory
.getTypeHandlerFromClassName((String) typeHandlerHash.get("className"));
if(typeHandler != null) {
@@ -495,7 +670,7 @@ public final class XmlRpcStructFactory {
if (propHash != null && propHash.keySet().size() > 0) {
for (Map.Entry<String, String> propName : propHash.entrySet()) {
- String propValue = propHash.get(propName);
+ String propValue = propName.getValue();
props.setProperty(propName.getKey(), propValue);
}
}
@@ -503,8 +678,8 @@ public final class XmlRpcStructFactory {
return props;
}
- public static Map<String, String> getXmlRpcProperties(Properties props) {
- Map<String, String> propHash = new ConcurrentHashMap<String, String>();
+ public static Hashtable<String, String> getXmlRpcProperties(Properties props) {
+ Hashtable<String, String> propHash = new Hashtable<String, String>();
if (props != null && props.keySet().size() > 0) {
for (Object o : props.keySet()) {
@@ -517,7 +692,7 @@ public final class XmlRpcStructFactory {
return propHash;
}
- public static Vector<Map<String, Object>> getXmlRpcReferences(List<Reference> references) {
+ public static Vector<Map<String, Object>> getXmlRpcReferencesMap(List<Reference> references) {
Vector<Map<String, Object>> refVector = new Vector<Map<String, Object>>();
if (references == null) {
@@ -532,17 +707,31 @@ public final class XmlRpcStructFactory {
return refVector;
}
- public static List<Reference> getReferencesFromXmlRpc(Vector<Map<String, Object>> referenceVector) {
+ public static Vector<Hashtable<String, Object>> getXmlRpcReferences(List<Reference> references) {
+ Vector<Hashtable<String, Object>> refVector = new Vector<Hashtable<String, Object>>();
+
+ if (references == null) {
+ return refVector;
+ }
+
+ for (Reference reference : references) {
+ Hashtable<String, Object> refHash = getXmlRpcReference(reference);
+ refVector.add(refHash);
+ }
+
+ return refVector;
+ }
+ public static List<Reference> getReferencesFromXmlRpc(Vector<Hashtable<String, Object>> referenceVector) {
List<Reference> references = new Vector<Reference>();
- for (Map<String, Object> aReferenceVector : referenceVector) {
+ for (Hashtable<String, Object> aReferenceVector : referenceVector) {
Reference r = getReferenceFromXmlRpc(aReferenceVector);
references.add(r);
}
return references;
}
- public static Map<String, Object> getXmlRpcReference(Reference reference) {
- Map<String, Object> referenceHash = new ConcurrentHashMap<String, Object>();
+ public static Hashtable<String, Object> getXmlRpcReference(Reference reference) {
+ Hashtable<String, Object> referenceHash = new Hashtable<String, Object>();
referenceHash.put("origReference", reference.getOrigReference());
referenceHash.put("dataStoreReference", reference
.getDataStoreReference() != null ? reference
@@ -564,26 +753,45 @@ public final class XmlRpcStructFactory {
return reference;
}
+ public static Reference getReferenceFromXmlRpcHashtable(Hashtable<String, Object> referenceHash) {
+ Reference reference = new Reference();
+ reference.setDataStoreReference((String) referenceHash
+ .get("dataStoreReference"));
+ reference.setOrigReference((String) referenceHash.get("origReference"));
+ reference.setFileSize(Long.parseLong(referenceHash.get("fileSize").toString()));
+ reference.setMimeType((String) referenceHash.get("mimeType"));
+ return reference;
+ }
+
+ public static Vector<Hashtable<String, Object>> getXmlRpcElementListHashtable(List<Element> elementList) {
+ Vector<Hashtable<String, Object>> elementVector = new Vector<Hashtable<String, Object>>(elementList.size());
+ for (Element element : elementList) {
+ Hashtable<String, Object> elementHash = getXmlRpcElementHashTable(element);
+ elementVector.add(elementHash);
+ }
+ return elementVector;
+ }
+
public static Vector<Map<String, Object>> getXmlRpcElementList(List<Element> elementList) {
Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
for (Element element : elementList) {
- Map<String, Object> elementHash = getXmlRpcElement(element);
+ HashMap<String, Object> elementHash = getXmlRpcElement(element);
elementVector.add(elementHash);
}
return elementVector;
}
- public static List<Element> getElementListFromXmlRpc(Vector<Map<String, Object>> elementVector) {
+ public static List<Element> getElementListFromXmlRpc(Vector<Hashtable<String, Object>> elementVector) {
List<Element> elementList = new Vector<Element>(elementVector.size());
- for (Map<String, Object> elementHash : elementVector) {
+ for (Hashtable<String, Object> elementHash : elementVector) {
Element element = getElementFromXmlRpc(elementHash);
elementList.add(element);
}
return elementList;
}
- public static Map<String, Object> getXmlRpcElement(Element element) {
- Map<String, Object> elementHash = new ConcurrentHashMap<String, Object>();
+ public static HashMap<String, Object> getXmlRpcElement(Element element) {
+ HashMap<String, Object> elementHash = new HashMap<String, Object>();
elementHash.put("id", element.getElementId());
elementHash.put("name", element.getElementName());
@@ -595,8 +803,20 @@ public final class XmlRpcStructFactory {
return elementHash;
}
+ public static Hashtable<String, Object> getXmlRpcElementHashTable(Element element) {
+ Hashtable<String, Object> elementHash = new Hashtable<String, Object>();
- public static Element getElementFromXmlRpc(Map<String, Object> elementHash) {
+ elementHash.put("id", element.getElementId());
+ elementHash.put("name", element.getElementName());
+ elementHash.put("dcElement", element.getDCElement() != null ? element
+ .getDCElement() : "");
+ elementHash.put("description",
+ element.getDescription() != null ? element.getDescription()
+ : "");
+
+ return elementHash;
+ }
+ public static Element getElementFromXmlRpc(Hashtable<String, Object> elementHash) {
Element element = new Element();
element.setElementId((String) elementHash.get("id"));
element.setElementName((String) elementHash.get("name"));
@@ -606,14 +826,14 @@ public final class XmlRpcStructFactory {
return element;
}
- public static Map<String, Object> getXmlRpcQuery(Query query) {
- Map<String, Object> queryHash = new ConcurrentHashMap<String, Object>();
- Vector<Map<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
+ public static Hashtable<String, Object> getXmlRpcQuery(Query query) {
+ Hashtable<String, Object> queryHash = new Hashtable<String, Object>();
+ Vector<Hashtable<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
queryHash.put("criteria", criteriaVector);
return queryHash;
}
- public static Query getQueryFromXmlRpc(Map<String, Object> queryHash) {
+ public static Query getQueryFromXmlRpc(Hashtable<String, Object> queryHash) {
Query query = new Query();
@SuppressWarnings("unchecked")
List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
@@ -622,10 +842,19 @@ public final class XmlRpcStructFactory {
return query;
}
- public static Vector<Map<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
- Vector<Map<String, Object>> criteriaVector = new Vector<Map<String, Object>>(criteriaList.size());
+ public static Query getQueryFromXmlRpcMap(Map<String, Object> queryHash) {
+ Query query = new Query();
+ @SuppressWarnings("unchecked")
+ List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
+ .get("criteria"));
+ query.setCriteria(criteria);
+ return query;
+ }
+
+ public static Vector<Hashtable<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
+ Vector<Hashtable<String, Object>> criteriaVector = new Vector<Hashtable<String, Object>>(criteriaList.size());
for (QueryCriteria criteria : criteriaList) {
- Map<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
+ Hashtable<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
criteriaVector.add(criteriaHash);
}
@@ -642,8 +871,8 @@ public final class XmlRpcStructFactory {
return criteriaList;
}
- public static Map<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
- Map<String, Object> criteriaHash = new ConcurrentHashMap<String, Object>();
+ public static Hashtable<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
+ Hashtable<String, Object> criteriaHash = new Hashtable<String, Object>();
criteriaHash.put("class",criteria.getClass().getCanonicalName());
if(criteria instanceof TermQueryCriteria){
@@ -659,11 +888,11 @@ public final class XmlRpcStructFactory {
} else if(criteria instanceof BooleanQueryCriteria){
BooleanQueryCriteria boolQuery = (BooleanQueryCriteria) criteria;
criteriaHash.put("operator", boolQuery.getOperator());
- Vector<Map<String, Object>> termsHash = new Vector<Map<String, Object>>();
+ Vector<Hashtable<String, Object>> termsHash = new Vector<Hashtable<String, Object>>();
List<QueryCriteria> terms = boolQuery.getTerms();
for (QueryCriteria term : terms) {
- Map<String, Object> termHash = getXmlRpcQueryCriteria(term);
+ Hashtable<String, Object> termHash = getXmlRpcQueryCriteria(term);
termsHash.add(termHash);
}
criteriaHash.put("terms", termsHash);
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
index 44b9220..73a21dc 100644
--- a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
+++ b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
@@ -405,7 +405,7 @@ public class Metadata {
* combined.
*/
@Deprecated
- public void addMetadata(ConcurrentHashMap<String, Object> metadata, boolean replace) {
+ public void addMetadata(Map<String, Object> metadata, boolean replace) {
// for back compat: the old method allowed us to give it a
// Map<String,String> and it still worked
for (Map.Entry<String, Object> key : metadata.entrySet()) {
@@ -419,19 +419,6 @@ public class Metadata {
}
}
- public void addMetadata(Map<String, Object> metadata, boolean replace) {
- // for back compat: the old method allowed us to give it a
- // Map<String,String> and it still worked
- for (Map.Entry<String, Object> key : metadata.entrySet()) {
- List<String> vals = (key.getValue() instanceof List) ? (List<String>) key.getValue()
- : Collections.singletonList(key.getValue().toString());
- if (replace) {
- this.replaceMetadata(key.getKey(), vals);
- } else {
- this.addMetadata(key.getKey(), vals);
- }
- }
- }
public void replaceMetadata(Map<String, Object> metadata) {
this.root = this.createNewRoot();
http://git-wip-us.apache.org/repos/asf/oodt/blob/aa5e31a6/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
----------------------------------------------------------------------
diff --git a/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java b/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
index c767bf3..dbba32c 100644
--- a/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
+++ b/resource/src/main/java/org/apache/oodt/cas/resource/system/XmlRpcResourceManager.java
@@ -58,9 +58,6 @@ import java.util.logging.Logger;
*/
public class XmlRpcResourceManager {
- /* the port to run the XML RPC web server on, default is 2000 */
- private int webServerPort = 2000;
-
/* our log stream */
private Logger LOG = Logger
.getLogger(XmlRpcResourceManager.class.getName());
@@ -93,10 +90,10 @@ public class XmlRpcResourceManager {
// start up the scheduler
new Thread(scheduler).start();
- webServerPort = port;
+
// start up the web server
- webServer = new WebServer(webServerPort);
+ webServer = new WebServer(port);
webServer.addHandler("resourcemgr", this);
webServer.start();
[3/6] oodt git commit: OODT-917 alter XMLRPC interface to support
more generic map types where suitable
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/oodt/blob/8705ccf4/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
index d10ef2a..bf15529 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
@@ -50,784 +50,704 @@ import java.util.concurrent.ConcurrentHashMap;
* @author mattmann
* @author bfoster
* @version $Revision$
- *
- * <p>
- * A factory class for creating File Manager structures suitable for transfer
- * over the XML-RPC pipe, and for reading objects from the XML-RPC pipe into
- * File Manager structs.
- * </p>
- *
+ * <p/>
+ * <p> A factory class for creating File Manager structures suitable for transfer over the XML-RPC pipe, and
+ * for reading objects from the XML-RPC pipe into File Manager structs. </p>
*/
public final class XmlRpcStructFactory {
- private XmlRpcStructFactory() throws InstantiationException {
- throw new InstantiationException(
- "Don't instantiate XmlRpcStructFactories!");
- }
-
- public static Map<String, Object> getXmlRpcFileTransferStatus(
- FileTransferStatus status) {
- Map<String, Object> statusHash = new Hashtable<String, Object>();
- statusHash.put("bytesTransferred",Long.toString(status
- .getBytesTransferred()));
- statusHash.put("parentProduct", getXmlRpcProduct(status
- .getParentProduct()));
- statusHash.put("fileRef", getXmlRpcReference(status.getFileRef()));
- return statusHash;
- }
-
+ private XmlRpcStructFactory() throws InstantiationException {
+ throw new InstantiationException(
+ "Don't instantiate XmlRpcStructFactories!");
+ }
+
+ public static Map<String, Object> getXmlRpcFileTransferStatus(
+ FileTransferStatus status) {
+ Map<String, Object> statusHash = new Hashtable<String, Object>();
+ statusHash.put("bytesTransferred", Long.toString(status
+ .getBytesTransferred()));
+ statusHash.put("parentProduct", getXmlRpcProduct(status
+ .getParentProduct()));
+ statusHash.put("fileRef", getXmlRpcReference(status.getFileRef()));
+ return statusHash;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static FileTransferStatus getFileTransferStatusFromXmlRpc(
+ Map<String, Object> statusHash) {
+ FileTransferStatus status = new FileTransferStatus();
+ status.setBytesTransferred(Long.parseLong(statusHash
+ .get("bytesTransferred").toString()));
+ status.setParentProduct(getProductFromXmlRpc((Hashtable<String, Object>) statusHash.get("parentProduct")));
+ status.setFileRef(getReferenceFromXmlRpc((Hashtable<String, Object>) statusHash.get("fileRef")));
+ return status;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcFileTransferStatuses(List<FileTransferStatus> statuses) {
+ Vector<Map<String, Object>> statusVector = new Vector<Map<String, Object>>();
+
+ if (statuses != null && statuses.size() > 0) {
+
+ for (FileTransferStatus status : statuses) {
+ statusVector.add(getXmlRpcFileTransferStatus(status));
+ }
+ }
+
+ return statusVector;
+ }
+
+ public static List<FileTransferStatus> getFileTransferStatusesFromXmlRpc(Vector<Map<String, Object>> statusVector) {
+ List<FileTransferStatus> statuses = new Vector<FileTransferStatus>();
+
+ if (statusVector != null && statusVector.size() > 0) {
+ for (Map<String, Object> statusHash : statusVector) {
+ FileTransferStatus status = getFileTransferStatusFromXmlRpc(statusHash);
+ statuses.add(status);
+ }
+ }
+
+ return statuses;
+ }
+
+ public static Map<String, Object> getXmlRpcProductPage(ProductPage page) {
+ Hashtable<String, Object> productPageHash = new Hashtable<String, Object>();
+ productPageHash.put("totalPages", page.getTotalPages());
+ productPageHash.put("pageNum", page.getPageNum());
+ productPageHash.put("pageSize", page.getPageSize());
+ productPageHash.put("pageProducts", getXmlRpcProductList(page
+ .getPageProducts()));
+ return productPageHash;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static ProductPage getProductPageFromXmlRpc(Map<String, Object> productPageHash) {
+ ProductPage page = new ProductPage();
+ page.setPageNum((Integer) productPageHash.get("pageNum"));
+ page
+ .setPageSize((Integer) productPageHash.get("pageSize"));
+ page.setTotalPages((Integer) productPageHash.get("totalPages"));
+ page.setPageProducts(getProductListFromXmlRpc((Vector<Map<String, Object>>) productPageHash
+ .get("pageProducts")));
+ return page;
+ }
+
+ public static Map<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
+ Map<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
+ if (complexQuery.getReducedProductTypeNames() != null) {
+ complexQueryHash
+ .put("reducedProductTypeNames", new Vector<String>(complexQuery.getReducedProductTypeNames()));
+ } else {
+ complexQueryHash.put("reducedProductTypeNames", new Vector<String>());
+ }
+ if (complexQuery.getReducedMetadata() != null) {
+ complexQueryHash.put("reducedMetadata", new Vector<String>(complexQuery.getReducedMetadata()));
+ } else {
+ complexQueryHash.put("reducedMetadata", new Vector<String>());
+ }
+ if (complexQuery.getSortByMetKey() != null) {
+ complexQueryHash.put("sortByMetKey", complexQuery.getSortByMetKey());
+ }
+ if (complexQuery.getToStringResultFormat() != null) {
+ complexQueryHash.put("toStringResultFormat", complexQuery.getToStringResultFormat());
+ }
+ if (complexQuery.getQueryFilter() != null) {
+ complexQueryHash.put("queryFilter", getXmlRpcQueryFilter(complexQuery.getQueryFilter()));
+ }
+ return complexQueryHash;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static ComplexQuery getComplexQueryFromXmlRpc(Map<String, Object> complexQueryHash) {
+ ComplexQuery complexQuery = new ComplexQuery();
+ complexQuery.setCriteria(getQueryFromXmlRpc(complexQueryHash).getCriteria());
+ if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
+ complexQuery.setReducedProductTypeNames((Vector<String>) complexQueryHash.get("reducedProductTypeNames"));
+ }
+ if (((Vector<String>) complexQueryHash.get("reducedMetadata")).size() > 0) {
+ complexQuery.setReducedMetadata((Vector<String>) complexQueryHash.get("reducedMetadata"));
+ }
+ complexQuery.setSortByMetKey((String) complexQueryHash.get("sortByMetKey"));
+ complexQuery.setToStringResultFormat((String) complexQueryHash.get("toStringResultFormat"));
+ if (complexQueryHash.get("queryFilter") != null) {
+ complexQuery.setQueryFilter(
+ getQueryFilterFromXmlRpc((Map<String, Object>) complexQueryHash.get("queryFilter")));
+ }
+ return complexQuery;
+ }
+
+ public static Map<String, Object> getXmlRpcQueryFilter(QueryFilter queryFilter) {
+ Map<String, Object> queryFilterHash = new ConcurrentHashMap<String, Object>();
+ queryFilterHash.put("startDateTimeMetKey", queryFilter.getStartDateTimeMetKey());
+ queryFilterHash.put("endDateTimeMetKey", queryFilter.getEndDateTimeMetKey());
+ queryFilterHash.put("priorityMetKey", queryFilter.getPriorityMetKey());
+ queryFilterHash.put("filterAlgor", getXmlRpcFilterAlgor(queryFilter.getFilterAlgor()));
+ queryFilterHash.put("versionConverterClass", queryFilter.getConverter().getClass().getCanonicalName());
+ return queryFilterHash;
+ }
+
+ public static QueryFilter getQueryFilterFromXmlRpc(Map<String, Object> queryFilterHash) {
+ String startDateTimeMetKey = (String) queryFilterHash.get("startDateTimeMetKey");
+ String endDateTimeMetKey = (String) queryFilterHash.get("endDateTimeMetKey");
+ String priorityMetKey = (String) queryFilterHash.get("priorityMetKey");
@SuppressWarnings("unchecked")
- public static FileTransferStatus getFileTransferStatusFromXmlRpc(
- Map<String, Object> statusHash) {
- FileTransferStatus status = new FileTransferStatus();
- status.setBytesTransferred(Long.parseLong(statusHash
- .get("bytesTransferred").toString()));
- status.setParentProduct(getProductFromXmlRpc((Hashtable<String, Object>) statusHash.get("parentProduct")));
- status.setFileRef(getReferenceFromXmlRpc((Hashtable<String, Object>) statusHash.get("fileRef")));
- return status;
- }
-
- public static Vector<Map<String, Object>> getXmlRpcFileTransferStatuses(List<FileTransferStatus> statuses) {
- Vector<Map<String, Object>> statusVector = new Vector<Map<String, Object>>();
-
- if (statuses != null && statuses.size() > 0) {
-
- for (FileTransferStatus status : statuses) {
- statusVector.add(getXmlRpcFileTransferStatus(status));
- }
- }
+ FilterAlgor filterAlgor = getFilterAlgorFromXmlRpc((Map<String, Object>) queryFilterHash.get("filterAlgor"));
+ QueryFilter queryFilter = new QueryFilter(startDateTimeMetKey, endDateTimeMetKey, priorityMetKey, filterAlgor);
+ queryFilter.setConverter(GenericFileManagerObjectFactory
+ .getVersionConverterFromClassName((String) queryFilterHash.get("versionConverterClass")));
+ return queryFilter;
+ }
+
+ public static Map<String, Object> getXmlRpcFilterAlgor(FilterAlgor filterAlgor) {
+ Map<String, Object> filterAlgorHash = new ConcurrentHashMap<String, Object>();
+ filterAlgorHash.put("class", filterAlgor.getClass().getCanonicalName());
+ filterAlgorHash.put("epsilon", Long.toString(filterAlgor.getEpsilon()));
+ return filterAlgorHash;
+ }
+
+ public static FilterAlgor getFilterAlgorFromXmlRpc(Map<String, Object> filterAlgorHash) {
+ FilterAlgor filterAlgor =
+ GenericFileManagerObjectFactory.getFilterAlgorFromClassName((String) filterAlgorHash.get("class"));
+ if (filterAlgor != null) {
+ filterAlgor.setEpsilon(Long.parseLong((String) filterAlgorHash.get("epsilon")));
+ }
+ return filterAlgor;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
+ Vector<Map<String, Object>> queryResultHashVector = new Vector<Map<String, Object>>();
+ for (QueryResult queryResult : queryResults) {
+ queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
+ }
+ return queryResultHashVector;
+ }
- return statusVector;
+ public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Map<String, Object>> queryResultHashVector) {
+ List<QueryResult> queryResults = new Vector<QueryResult>();
+ for (Map<String, Object> queryResultHash : queryResultHashVector) {
+ queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
}
+ return queryResults;
+ }
- public static List<FileTransferStatus> getFileTransferStatusesFromXmlRpc(Vector<Map<String, Object>> statusVector) {
- List<FileTransferStatus> statuses = new Vector<FileTransferStatus>();
-
- if (statusVector != null && statusVector.size() > 0) {
- for (Map<String, Object> statusHash : statusVector) {
- FileTransferStatus status = getFileTransferStatusFromXmlRpc(statusHash);
- statuses.add(status);
- }
- }
-
- return statuses;
+ public static Map<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
+ Hashtable<String, Object> queryResultHash = new Hashtable<String, Object>();
+ if (queryResult.getToStringFormat() != null) {
+ queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
}
+ queryResultHash.put("product", getXmlRpcProduct(queryResult.getProduct()));
+ queryResultHash.put("metadata", queryResult.getMetadata().getHashTable());
+ return queryResultHash;
+ }
- public static Map<String, Object> getXmlRpcProductPage(ProductPage page) {
- Hashtable<String, Object>productPageHash = new Hashtable<String, Object>();
- productPageHash.put("totalPages", page.getTotalPages());
- productPageHash.put("pageNum", page.getPageNum());
- productPageHash.put("pageSize", page.getPageSize());
- productPageHash.put("pageProducts", getXmlRpcProductList(page
- .getPageProducts()));
- return productPageHash;
- }
- @SuppressWarnings("unchecked")
- public static ProductPage getProductPageFromXmlRpc(Map<String, Object> productPageHash) {
- ProductPage page = new ProductPage();
- page.setPageNum((Integer) productPageHash.get("pageNum"));
- page
- .setPageSize((Integer) productPageHash.get("pageSize"));
- page.setTotalPages((Integer) productPageHash.get("totalPages"));
- page.setPageProducts(getProductListFromXmlRpc((Vector<Map<String, Object>>) productPageHash
- .get("pageProducts")));
- return page;
- }
-
- public static Map<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
- Map<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
- if (complexQuery.getReducedProductTypeNames() != null) {
- complexQueryHash
- .put("reducedProductTypeNames", new Vector<String>(complexQuery.getReducedProductTypeNames()));
- } else {
- complexQueryHash.put("reducedProductTypeNames", new Vector<String>());
- }
- if (complexQuery.getReducedMetadata() != null) {
- complexQueryHash.put("reducedMetadata", new Vector<String>(complexQuery.getReducedMetadata()));
- } else {
- complexQueryHash.put("reducedMetadata", new Vector<String>());
- }
- if (complexQuery.getSortByMetKey() != null) {
- complexQueryHash.put("sortByMetKey", complexQuery.getSortByMetKey());
- }
- if (complexQuery.getToStringResultFormat() != null) {
- complexQueryHash.put("toStringResultFormat", complexQuery.getToStringResultFormat());
- }
- if (complexQuery.getQueryFilter() != null) {
- complexQueryHash.put("queryFilter", getXmlRpcQueryFilter(complexQuery.getQueryFilter()));
- }
- return complexQueryHash;
- }
+ @SuppressWarnings("unchecked")
+ public static QueryResult getQueryResultFromXmlRpc(Map<String, Object> queryResultHash) {
+ Product product = getProductFromXmlRpc((Map<String, Object>) queryResultHash.get("product"));
+ Metadata metadata = new Metadata();
+ metadata.addMetadata((Map<String, Object>) queryResultHash.get("metadata"));
+ QueryResult queryResult = new QueryResult(product, metadata);
+ queryResult.setToStringFormat((String) queryResultHash.get("toStringFormat"));
+ return queryResult;
+ }
- @SuppressWarnings("unchecked")
- public static ComplexQuery getComplexQueryFromXmlRpc(Map<String, Object> complexQueryHash) {
- ComplexQuery complexQuery = new ComplexQuery();
- complexQuery.setCriteria(getQueryFromXmlRpc(complexQueryHash).getCriteria());
- if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
- complexQuery.setReducedProductTypeNames((Vector<String>) complexQueryHash.get("reducedProductTypeNames"));
- }
- if (((Vector<String>) complexQueryHash.get("reducedMetadata")).size() > 0) {
- complexQuery.setReducedMetadata((Vector<String>) complexQueryHash.get("reducedMetadata"));
- }
- complexQuery.setSortByMetKey((String) complexQueryHash.get("sortByMetKey"));
- complexQuery.setToStringResultFormat((String) complexQueryHash.get("toStringResultFormat"));
- if (complexQueryHash.get("queryFilter") != null) {
- complexQuery.setQueryFilter(
- getQueryFilterFromXmlRpc((Map<String, Object>) complexQueryHash.get("queryFilter")));
- }
- return complexQuery;
+ public static Map<String, Object> getXmlRpcProduct(Product product) {
+ Map<String, Object> productHash = new Hashtable<String, Object>();
+ if (product.getProductId() != null) {
+ productHash.put("id", product.getProductId());
}
-
- public static ComplexQuery getComplexQueryFromXmlRpcMap(Map<String, Object> complexQueryHash) {
- ComplexQuery complexQuery = new ComplexQuery();
- complexQuery.setCriteria(getQueryFromXmlRpcMap(complexQueryHash).getCriteria());
- if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
- complexQuery.setReducedProductTypeNames((Vector<String>) complexQueryHash.get("reducedProductTypeNames"));
- }
- if (((Vector<String>) complexQueryHash.get("reducedMetadata")).size() > 0) {
- complexQuery.setReducedMetadata((Vector<String>) complexQueryHash.get("reducedMetadata"));
- }
- complexQuery.setSortByMetKey((String) complexQueryHash.get("sortByMetKey"));
- complexQuery.setToStringResultFormat((String) complexQueryHash.get("toStringResultFormat"));
- if (complexQueryHash.get("queryFilter") != null) {
- complexQuery.setQueryFilter(
- getQueryFilterFromXmlRpc((Map<String, Object>) complexQueryHash.get("queryFilter")));
- }
- return complexQuery;
- }
- public static Map<String, Object> getXmlRpcQueryFilter(QueryFilter queryFilter) {
- Map<String, Object> queryFilterHash = new ConcurrentHashMap<String, Object>();
- queryFilterHash.put("startDateTimeMetKey", queryFilter.getStartDateTimeMetKey());
- queryFilterHash.put("endDateTimeMetKey", queryFilter.getEndDateTimeMetKey());
- queryFilterHash.put("priorityMetKey", queryFilter.getPriorityMetKey());
- queryFilterHash.put("filterAlgor", getXmlRpcFilterAlgor(queryFilter.getFilterAlgor()));
- queryFilterHash.put("versionConverterClass", queryFilter.getConverter().getClass().getCanonicalName());
- return queryFilterHash;
- }
-
- public static QueryFilter getQueryFilterFromXmlRpc(Map<String, Object> queryFilterHash) {
- String startDateTimeMetKey = (String) queryFilterHash.get("startDateTimeMetKey");
- String endDateTimeMetKey = (String) queryFilterHash.get("endDateTimeMetKey");
- String priorityMetKey = (String) queryFilterHash.get("priorityMetKey");
- @SuppressWarnings("unchecked")
- FilterAlgor filterAlgor = getFilterAlgorFromXmlRpc((Map<String, Object>) queryFilterHash.get("filterAlgor"));
- QueryFilter queryFilter = new QueryFilter(startDateTimeMetKey, endDateTimeMetKey, priorityMetKey, filterAlgor);
- queryFilter.setConverter(GenericFileManagerObjectFactory.getVersionConverterFromClassName((String) queryFilterHash.get("versionConverterClass")));
- return queryFilter;
- }
-
- public static Map<String, Object> getXmlRpcFilterAlgor(FilterAlgor filterAlgor) {
- Map<String, Object> filterAlgorHash = new ConcurrentHashMap<String, Object>();
- filterAlgorHash.put("class", filterAlgor.getClass().getCanonicalName());
- filterAlgorHash.put("epsilon", Long.toString(filterAlgor.getEpsilon()));
- return filterAlgorHash;
- }
-
- public static FilterAlgor getFilterAlgorFromXmlRpc(Map<String, Object> filterAlgorHash) {
- FilterAlgor filterAlgor = GenericFileManagerObjectFactory.getFilterAlgorFromClassName((String) filterAlgorHash.get("class"));
- if (filterAlgor != null) {
- filterAlgor.setEpsilon(Long.parseLong((String) filterAlgorHash.get("epsilon")));
- }
- return filterAlgor;
+ if (product.getProductName() != null) {
+ productHash.put("name", product.getProductName());
}
-
- public static Vector<Map<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
- Vector<Map<String, Object>> queryResultHashVector = new Vector<Map<String, Object>>();
- for (QueryResult queryResult : queryResults) {
- queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
- }
- return queryResultHashVector;
+ if (product.getProductType() != null) {
+ productHash.put("type", getXmlRpcProductType(product.getProductType()));
}
-
- public static Vector<Map<String, Object>> getXmlRpcQueryResultsMap(List<QueryResult> queryResults) {
- Vector<Map<String, Object>> queryResultHashVector = new Vector<Map<String, Object>>();
- for (QueryResult queryResult : queryResults) {
- queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
- }
- return queryResultHashVector;
+ if (product.getProductStructure() != null) {
+ productHash.put("structure", product.getProductStructure());
}
-
- public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Map<String, Object>> queryResultHashVector) {
- List<QueryResult> queryResults = new Vector<QueryResult>();
- for (Map<String, Object> queryResultHash : queryResultHashVector) {
- queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
- }
- return queryResults;
+ if (product.getTransferStatus() != null) {
+ productHash.put("transferStatus", product.getTransferStatus());
}
-
- public static List<QueryResult> getQueryResultsFromXmlRpcMap(Vector<Map<String, Object>>
- queryResultHashVector) {
- List<QueryResult> queryResults = new Vector<QueryResult>();
- for (Map<String, Object> queryResultHash : queryResultHashVector) {
- queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
- }
- return queryResults;
+ if (product.getProductReferences() != null) {
+ productHash.put("references", getXmlRpcReferences(product
+ .getProductReferences()));
}
- public static Map<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
- Hashtable<String, Object> queryResultHash = new Hashtable<String, Object>();
- if (queryResult.getToStringFormat() != null) {
- queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
- }
- queryResultHash.put("product", getXmlRpcProduct(queryResult.getProduct()));
- queryResultHash.put("metadata", queryResult.getMetadata().getHashTable());
- return queryResultHash;
+ if (product.getRootRef() != null) {
+ productHash.put("rootReference", getXmlRpcReference(product
+ .getRootRef()));
}
+ return productHash;
+ }
-
- @SuppressWarnings("unchecked")
- public static QueryResult getQueryResultFromXmlRpc(Map<String, Object> queryResultHash) {
- Product product = getProductFromXmlRpc((Map<String, Object>) queryResultHash.get("product"));
- Metadata metadata = new Metadata();
- metadata.addMetadata((Map<String, Object>) queryResultHash.get("metadata"));
- QueryResult queryResult = new QueryResult(product, metadata);
- queryResult.setToStringFormat((String) queryResultHash.get("toStringFormat"));
- return queryResult;
- }
-
- public static Map<String, Object> getXmlRpcProduct(Product product) {
- Map<String, Object> productHash = new Hashtable<String, Object>();
- if (product.getProductId() != null) {
- productHash.put("id", product.getProductId());
- }
- if (product.getProductName() != null) {
- productHash.put("name", product.getProductName());
- }
- if (product.getProductType() != null) {
- productHash.put("type", getXmlRpcProductType(product.getProductType()));
- }
- if (product.getProductStructure() != null) {
- productHash.put("structure", product.getProductStructure());
- }
- if (product.getTransferStatus() != null) {
- productHash.put("transferStatus", product.getTransferStatus());
- }
- if (product.getProductReferences() != null) {
- productHash.put("references", getXmlRpcReferences(product
- .getProductReferences()));
- }
- if (product.getRootRef() != null) {
- productHash.put("rootReference", getXmlRpcReference(product
- .getRootRef()));
- }
- return productHash;
+ @SuppressWarnings("unchecked")
+ public static Product getProductFromXmlRpc(Map<?, ?> productHash) {
+ Product product = new Product();
+ product.setProductId((String) productHash.get("id"));
+ product.setProductName((String) productHash.get("name"));
+ if (productHash.get("type") != null) {
+ product.setProductType(getProductTypeFromXmlRpc(
+ (Map<String, Object>) productHash.get("type")));
}
-
- @SuppressWarnings("unchecked")
- public static Product getProductFromXmlRpc(Map<?, ?> productHash) {
- Product product = new Product();
- product.setProductId((String) productHash.get("id"));
- product.setProductName((String) productHash.get("name"));
- if (productHash.get("type") != null) {
- product.setProductType(getProductTypeFromXmlRpc(
- (Map<String, Object>) productHash.get("type")));
- }
- product.setProductStructure((String) productHash.get("structure"));
- product.setTransferStatus((String) productHash.get("transferStatus"));
- if (productHash.get("references") != null) {
- product.setProductReferences(getReferencesFromXmlRpc(
- (Vector<Map<String, Object>>) productHash
- .get("references")));
- }
- if (productHash.get("rootReference") != null) {
- product.setRootRef(getReferenceFromXmlRpc(
- (Map<String, Object>) productHash.get("rootReference")));
- }
- return product;
+ product.setProductStructure((String) productHash.get("structure"));
+ product.setTransferStatus((String) productHash.get("transferStatus"));
+ if (productHash.get("references") != null) {
+ product.setProductReferences(getReferencesFromXmlRpc(
+ (Vector<Map<String, Object>>) productHash
+ .get("references")));
}
-
- public static List<Product> getProductListFromXmlRpc(Vector<Map<String, Object>> productVector) {
- List<Product> productList = new Vector<Product>();
-
- for (Map<String, Object> productHash : productVector) {
- Product product = getProductFromXmlRpc(productHash);
- productList.add(product);
- }
-
- return productList;
+ if (productHash.get("rootReference") != null) {
+ product.setRootRef(getReferenceFromXmlRpc(
+ (Map<String, Object>) productHash.get("rootReference")));
}
+ return product;
+ }
- public static Vector<Map<String, Object>> getXmlRpcProductListMap(List<Product> products) {
- Vector<Map<String, Object>> productVector = new Vector<Map<String, Object>>();
+ public static List<Product> getProductListFromXmlRpc(Vector<Map<String, Object>> productVector) {
+ List<Product> productList = new Vector<Product>();
- if (products == null) {
- return productVector;
- }
-
- for (Product product : products) {
- Map<String, Object> productHash = getXmlRpcProduct(product);
- productVector.add(productHash);
- }
-
- return productVector;
+ for (Map<String, Object> productHash : productVector) {
+ Product product = getProductFromXmlRpc(productHash);
+ productList.add(product);
}
- public static Vector<Map<String, Object>> getXmlRpcProductList(List<Product> products) {
- Vector<Map<String, Object>> productVector = new Vector<Map<String, Object>>();
+ return productList;
+ }
- if (products == null) {
- return productVector;
- }
- for (Product product : products) {
- Map<String, Object> productHash = getXmlRpcProduct(product);
- productVector.add(productHash);
- }
+ public static Vector<Map<String, Object>> getXmlRpcProductList(List<Product> products) {
+ Vector<Map<String, Object>> productVector = new Vector<Map<String, Object>>();
- return productVector;
+ if (products == null) {
+ return productVector;
}
- public static Vector<Map<String, Object>> getXmlRpcProductTypeList(List<ProductType> productTypes) {
- Vector<Map<String, Object>> productTypeVector = new Vector<Map<String, Object>>();
-
- if (productTypes == null) {
- return productTypeVector;
- }
-
- for (ProductType type : productTypes) {
- Map<String, Object> typeHash = getXmlRpcProductType(type);
- productTypeVector.add(typeHash);
- }
- return productTypeVector;
+ for (Product product : products) {
+ Map<String, Object> productHash = getXmlRpcProduct(product);
+ productVector.add(productHash);
}
- public static List<ProductType> getProductTypeListFromXmlRpc(Vector<Map<String, Object>> productTypeVector) {
- List<ProductType> productTypeList = new Vector<ProductType>();
- for (Map<String, Object> productTypeHash : productTypeVector) {
- ProductType type = getProductTypeFromXmlRpc(productTypeHash);
- productTypeList.add(type);
- }
+ return productVector;
+ }
- return productTypeList;
- }
+ public static Vector<Map<String, Object>> getXmlRpcProductTypeList(List<ProductType> productTypes) {
+ Vector<Map<String, Object>> productTypeVector = new Vector<Map<String, Object>>();
- public static Map<String, Object> getXmlRpcProductType(ProductType type) {
- Map<String, Object> productTypeHash = new Hashtable<String, Object>();
- // TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
- productTypeHash.put("id", type.getProductTypeId());
- if (type.getName() != null) {
- productTypeHash.put("name", type.getName());
- }
- if (type.getDescription() != null) {
- productTypeHash.put("description", type.getDescription());
- }
- if (type.getProductRepositoryPath() != null) {
- productTypeHash.put("repositoryPath",type.getProductRepositoryPath());
- }
- if (type.getVersioner() != null) {
- productTypeHash.put("versionerClass", type.getVersioner());
- }
- if (type.getTypeMetadata() != null) {
- productTypeHash.put("typeMetadata", type.getTypeMetadata().getHashTable());
- }
- if (type.getExtractors() != null) {
- productTypeHash.put("typeExtractors", getXmlRpcTypeExtractors(type.getExtractors()));
- }
- if (type.getHandlers() != null) {
- productTypeHash.put("typeHandlers", getXmlRpcTypeHandlers(type.getHandlers()));
- }
- return productTypeHash;
+ if (productTypes == null) {
+ return productTypeVector;
}
- @SuppressWarnings("unchecked")
- public static ProductType getProductTypeFromXmlRpc(Map<String, Object> productTypeHash) {
- ProductType type = new ProductType();
- type.setDescription((String) productTypeHash.get("description"));
- type.setName((String) productTypeHash.get("name"));
- type.setProductRepositoryPath((String) productTypeHash.get("repositoryPath"));
- type.setProductTypeId((String) productTypeHash.get("id"));
- type.setVersioner((String) productTypeHash.get("versionerClass"));
- if (productTypeHash.get("typeMetadata") != null) {
- Metadata typeMet = new Metadata();
- typeMet.addMetadata((Map<String, Object>) productTypeHash.get("typeMetadata"));
- type.setTypeMetadata(typeMet);
- }
- if (productTypeHash.get("typeExtractors") != null) {
- type.setExtractors(getTypeExtractorsFromXmlRpc(
- (Vector<Map<String, Object>>) productTypeHash
- .get("typeExtractors")));
- }
- if (productTypeHash.get("typeHandlers") != null) {
- type.setHandlers(getTypeHandlersFromXmlRpc(
- (Vector<Map<String, Object>>) productTypeHash
- .get("typeHandlers")));
- }
- return type;
- }
-
- public static Vector<Map<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
- Vector<Map<String, Object>> extractorsVector = new Vector<Map<String, Object>>();
-
- if (extractors != null && extractors.size() > 0) {
- for (ExtractorSpec spec : extractors) {
- extractorsVector.add(getXmlRpcExtractorSpec(spec));
- }
- }
-
- return extractorsVector;
- }
- public static Vector<Map<String, Object>> getXmlRpcTypeExtractorsMap(List<ExtractorSpec> extractors) {
- Vector<Map<String, Object>> extractorsVector = new Vector<Map<String, Object>>();
-
- if (extractors != null && extractors.size() > 0) {
- for (ExtractorSpec spec : extractors) {
- extractorsVector.add(getXmlRpcExtractorSpec(spec));
- }
- }
-
- return extractorsVector;
+ for (ProductType type : productTypes) {
+ Map<String, Object> typeHash = getXmlRpcProductType(type);
+ productTypeVector.add(typeHash);
}
+ return productTypeVector;
+ }
- public static Map<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
- Map<String, Object> extractorHash = new Hashtable<String, Object>();
- extractorHash.put("className", spec.getClassName());
- extractorHash.put("config",
- getXmlRpcProperties(spec.getConfiguration()));
- return extractorHash;
+ public static List<ProductType> getProductTypeListFromXmlRpc(Vector<Map<String, Object>> productTypeVector) {
+ List<ProductType> productTypeList = new Vector<ProductType>();
+ for (Map<String, Object> productTypeHash : productTypeVector) {
+ ProductType type = getProductTypeFromXmlRpc(productTypeHash);
+ productTypeList.add(type);
}
- public static Vector<Map<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
- Vector<Map<String, Object>> handlersVector = new Vector<Map<String, Object>>();
+ return productTypeList;
+ }
- if (typeHandlers != null && typeHandlers.size() > 0) {
- for (TypeHandler typeHandler : typeHandlers) {
- handlersVector.add(getXmlRpcTypeHandler(typeHandler));
- }
- }
-
- return handlersVector;
+ public static Map<String, Object> getXmlRpcProductType(ProductType type) {
+ Map<String, Object> productTypeHash = new Hashtable<String, Object>();
+ // TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
+ productTypeHash.put("id", type.getProductTypeId());
+ if (type.getName() != null) {
+ productTypeHash.put("name", type.getName());
}
-
- public static Map<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
- Map<String, Object> handlerHash = new Hashtable<String, Object>();
- handlerHash.put("className", typeHandler != null ?
- typeHandler.getClass().getCanonicalName():"");
- handlerHash.put("elementName", typeHandler != null ?
- typeHandler.getElementName():"");
- return handlerHash;
+ if (type.getDescription() != null) {
+ productTypeHash.put("description", type.getDescription());
}
-
- public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Map<String, Object>> extractorsVector) {
- List<ExtractorSpec> extractors = new Vector<ExtractorSpec>();
-
- if (extractorsVector != null && extractorsVector.size() > 0) {
- for (Map<String, Object> extractorSpecHash : extractorsVector) {
- extractors.add(getExtractorSpecFromXmlRpc(extractorSpecHash));
- }
- }
-
- return extractors;
+ if (type.getProductRepositoryPath() != null) {
+ productTypeHash.put("repositoryPath", type.getProductRepositoryPath());
}
-
- @SuppressWarnings("unchecked")
- public static ExtractorSpec getExtractorSpecFromXmlRpc(
- Map<String, Object> extractorSpecHash) {
- ExtractorSpec spec = new ExtractorSpec();
- spec.setClassName((String) extractorSpecHash.get("className"));
- spec
- .setConfiguration(getPropertiesFromXmlRpc((Map<String, String>) extractorSpecHash
- .get("config")));
- return spec;
- }
-
- public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Map<String, Object>> handlersVector) {
- List<TypeHandler> handlers = new Vector<TypeHandler>();
-
- if (handlersVector != null && handlersVector.size() > 0) {
- for (Map<String, Object> typeHandlerHash : handlersVector) {
- handlers.add(getTypeHandlerFromXmlRpc(typeHandlerHash));
- }
- }
-
- return handlers;
- }
-
- public static TypeHandler getTypeHandlerFromXmlRpc(
- Map<String, Object> typeHandlerHash) {
- TypeHandler typeHandler = GenericFileManagerObjectFactory
- .getTypeHandlerFromClassName((String) typeHandlerHash.get("className"));
- if(typeHandler != null) {
- typeHandler.setElementName((String) typeHandlerHash.get("elementName"));
- }
- return typeHandler;
+ if (type.getVersioner() != null) {
+ productTypeHash.put("versionerClass", type.getVersioner());
}
-
- public static Properties getPropertiesFromXmlRpc(Map<String, String> propHash) {
- Properties props = new Properties();
-
- if (propHash != null && propHash.keySet().size() > 0) {
- for (Map.Entry<String, String> propName : propHash.entrySet()) {
- String propValue = propName.getValue();
- props.setProperty(propName.getKey(), propValue);
- }
- }
-
- return props;
+ if (type.getTypeMetadata() != null) {
+ productTypeHash.put("typeMetadata", type.getTypeMetadata().getHashTable());
}
-
- public static Map<String, String> getXmlRpcProperties(Properties props) {
- Map<String, String> propHash = new Hashtable<String, String>();
-
- if (props != null && props.keySet().size() > 0) {
- for (Object o : props.keySet()) {
- String propName = (String) o;
- String propValue = props.getProperty(propName);
- propHash.put(propName, propValue);
- }
- }
-
- return propHash;
+ if (type.getExtractors() != null) {
+ productTypeHash.put("typeExtractors", getXmlRpcTypeExtractors(type.getExtractors()));
}
-
- public static Vector<Map<String, Object>> getXmlRpcReferencesMap(List<Reference> references) {
- Vector<Map<String, Object>> refVector = new Vector<Map<String, Object>>();
-
- if (references == null) {
- return refVector;
- }
-
- for (Reference reference : references) {
- Map<String, Object> refHash = getXmlRpcReference(reference);
- refVector.add(refHash);
- }
-
- return refVector;
+ if (type.getHandlers() != null) {
+ productTypeHash.put("typeHandlers", getXmlRpcTypeHandlers(type.getHandlers()));
}
+ return productTypeHash;
+ }
- public static Vector<Map<String, Object>> getXmlRpcReferences(List<Reference> references) {
- Vector<Map<String, Object>> refVector = new Vector<Map<String, Object>>();
-
- if (references == null) {
- return refVector;
- }
-
- for (Reference reference : references) {
- Map<String, Object> refHash = getXmlRpcReference(reference);
- refVector.add(refHash);
- }
-
- return refVector;
- }
- public static List<Reference> getReferencesFromXmlRpc(Vector<Map<String, Object>> referenceVector) {
- List<Reference> references = new Vector<Reference>();
- for (Map<String, Object> aReferenceVector : referenceVector) {
- Reference r = getReferenceFromXmlRpc(aReferenceVector);
- references.add(r);
- }
- return references;
- }
-
- public static Map<String, Object> getXmlRpcReference(Reference reference) {
- Map<String, Object> referenceHash = new Hashtable<String, Object>();
- referenceHash.put("origReference", reference.getOrigReference());
- referenceHash.put("dataStoreReference", reference
- .getDataStoreReference() != null ? reference
- .getDataStoreReference() : "");
- referenceHash.put("fileSize",
- Long.toString(reference.getFileSize()));
- referenceHash.put("mimeType", (reference.getMimeType() == null) ? ""
- : reference.getMimeType().getName());
- return referenceHash;
- }
-
- public static Reference getReferenceFromXmlRpc(Map<String, Object> referenceHash) {
- Reference reference = new Reference();
- reference.setDataStoreReference((String) referenceHash
- .get("dataStoreReference"));
- reference.setOrigReference((String) referenceHash.get("origReference"));
- reference.setFileSize(Long.parseLong(referenceHash.get("fileSize").toString()));
- reference.setMimeType((String) referenceHash.get("mimeType"));
- return reference;
- }
-
- public static Reference getReferenceFromXmlRpcHashtable(Map<String, Object> referenceHash) {
- Reference reference = new Reference();
- reference.setDataStoreReference((String) referenceHash
- .get("dataStoreReference"));
- reference.setOrigReference((String) referenceHash.get("origReference"));
- reference.setFileSize(Long.parseLong(referenceHash.get("fileSize").toString()));
- reference.setMimeType((String) referenceHash.get("mimeType"));
- return reference;
- }
-
- public static Vector<Map<String, Object>> getXmlRpcElementListHashtable(List<Element> elementList) {
- Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
- for (Element element : elementList) {
- Map<String, Object> elementHash = getXmlRpcElementHashTable(element);
- elementVector.add(elementHash);
- }
- return elementVector;
+ @SuppressWarnings("unchecked")
+ public static ProductType getProductTypeFromXmlRpc(Map<String, Object> productTypeHash) {
+ ProductType type = new ProductType();
+ type.setDescription((String) productTypeHash.get("description"));
+ type.setName((String) productTypeHash.get("name"));
+ type.setProductRepositoryPath((String) productTypeHash.get("repositoryPath"));
+ type.setProductTypeId((String) productTypeHash.get("id"));
+ type.setVersioner((String) productTypeHash.get("versionerClass"));
+ if (productTypeHash.get("typeMetadata") != null) {
+ Metadata typeMet = new Metadata();
+ typeMet.addMetadata((Map<String, Object>) productTypeHash.get("typeMetadata"));
+ type.setTypeMetadata(typeMet);
}
-
- public static Vector<Map<String, Object>> getXmlRpcElementList(List<Element> elementList) {
- Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
- for (Element element : elementList) {
- Map<String, Object> elementHash = getXmlRpcElement(element);
- elementVector.add(elementHash);
- }
- return elementVector;
+ if (productTypeHash.get("typeExtractors") != null) {
+ type.setExtractors(getTypeExtractorsFromXmlRpc(
+ (Vector<Map<String, Object>>) productTypeHash
+ .get("typeExtractors")));
}
-
- public static List<Element> getElementListFromXmlRpc(Vector<Map<String, Object>> elementVector) {
- List<Element> elementList = new Vector<Element>(elementVector.size());
- for (Map<String, Object> elementHash : elementVector) {
- Element element = getElementFromXmlRpc(elementHash);
- elementList.add(element);
- }
- return elementList;
+ if (productTypeHash.get("typeHandlers") != null) {
+ type.setHandlers(getTypeHandlersFromXmlRpc(
+ (Vector<Map<String, Object>>) productTypeHash
+ .get("typeHandlers")));
}
+ return type;
+ }
- public static Map<String, Object> getXmlRpcElement(Element element) {
- Map<String, Object> elementHash = new HashMap<String, Object>();
+ public static Vector<Map<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
+ Vector<Map<String, Object>> extractorsVector = new Vector<Map<String, Object>>();
- elementHash.put("id", element.getElementId());
- elementHash.put("name", element.getElementName());
- elementHash.put("dcElement", element.getDCElement() != null ? element
- .getDCElement() : "");
- elementHash.put("description",
- element.getDescription() != null ? element.getDescription()
- : "");
-
- return elementHash;
+ if (extractors != null && extractors.size() > 0) {
+ for (ExtractorSpec spec : extractors) {
+ extractorsVector.add(getXmlRpcExtractorSpec(spec));
+ }
}
- public static Map<String, Object> getXmlRpcElementHashTable(Element element) {
- Map<String, Object> elementHash = new Hashtable<String, Object>();
- elementHash.put("id", element.getElementId());
- elementHash.put("name", element.getElementName());
- elementHash.put("dcElement", element.getDCElement() != null ? element
- .getDCElement() : "");
- elementHash.put("description",
- element.getDescription() != null ? element.getDescription()
- : "");
+ return extractorsVector;
+ }
- return elementHash;
- }
- public static Element getElementFromXmlRpc(Map<String, Object> elementHash) {
- Element element = new Element();
- element.setElementId((String) elementHash.get("id"));
- element.setElementName((String) elementHash.get("name"));
- element.setDescription((String) elementHash.get("description"));
- element.setDCElement((String) elementHash.get("dcElement"));
+ public static Map<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
+ Map<String, Object> extractorHash = new Hashtable<String, Object>();
+ extractorHash.put("className", spec.getClassName());
+ extractorHash.put("config",
+ getXmlRpcProperties(spec.getConfiguration()));
+ return extractorHash;
+ }
- return element;
- }
+ public static Vector<Map<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
+ Vector<Map<String, Object>> handlersVector = new Vector<Map<String, Object>>();
- public static Map<String, Object> getXmlRpcQuery(Query query) {
- Map<String, Object> queryHash = new Hashtable<String, Object>();
- Vector<Map<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
- queryHash.put("criteria", criteriaVector);
- return queryHash;
+ if (typeHandlers != null && typeHandlers.size() > 0) {
+ for (TypeHandler typeHandler : typeHandlers) {
+ handlersVector.add(getXmlRpcTypeHandler(typeHandler));
+ }
}
- public static Query getQueryFromXmlRpc(Map<String, Object> queryHash) {
- Query query = new Query();
- @SuppressWarnings("unchecked")
- List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
- .get("criteria"));
- query.setCriteria(criteria);
- return query;
- }
+ return handlersVector;
+ }
- public static Query getQueryFromXmlRpcMap(Map<String, Object> queryHash) {
- Query query = new Query();
- @SuppressWarnings("unchecked")
- List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
- .get("criteria"));
- query.setCriteria(criteria);
- return query;
- }
+ public static Map<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
+ Map<String, Object> handlerHash = new Hashtable<String, Object>();
+ handlerHash.put("className", typeHandler != null ?
+ typeHandler.getClass().getCanonicalName() : "");
+ handlerHash.put("elementName", typeHandler != null ?
+ typeHandler.getElementName() : "");
+ return handlerHash;
+ }
- public static Vector<Map<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
- Vector<Map<String, Object>> criteriaVector = new Vector<Map<String, Object>>(criteriaList.size());
- for (QueryCriteria criteria : criteriaList) {
- Map<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
- criteriaVector.add(criteriaHash);
- }
+ public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Map<String, Object>> extractorsVector) {
+ List<ExtractorSpec> extractors = new Vector<ExtractorSpec>();
- return criteriaVector;
+ if (extractorsVector != null && extractorsVector.size() > 0) {
+ for (Map<String, Object> extractorSpecHash : extractorsVector) {
+ extractors.add(getExtractorSpecFromXmlRpc(extractorSpecHash));
+ }
}
- public static List<QueryCriteria> getQueryCriteriaListFromXmlRpc(Vector<Map<String, Object>> criteriaVector) {
-
- List<QueryCriteria> criteriaList = new Vector<QueryCriteria>(criteriaVector.size());
- for (Map<String, Object> criteriaHash : criteriaVector) {
- QueryCriteria criteria = getQueryCriteriaFromXmlRpc(criteriaHash);
- criteriaList.add(criteria);
- }
- return criteriaList;
- }
-
- public static Map<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
- Map<String, Object> criteriaHash = new Hashtable<String, Object>();
- criteriaHash.put("class",criteria.getClass().getCanonicalName());
-
- if(criteria instanceof TermQueryCriteria){
- criteriaHash.put("elementName", criteria.getElementName());
- criteriaHash.put("elementValue", ((TermQueryCriteria)criteria).getValue());
- } else if(criteria instanceof RangeQueryCriteria){
- criteriaHash.put("elementName", criteria.getElementName());
- criteriaHash.put("elementStartValue", ((RangeQueryCriteria)criteria).getStartValue() != null ?
- ((RangeQueryCriteria)criteria).getStartValue():"");
- criteriaHash.put("elementEndValue", ((RangeQueryCriteria)criteria).getEndValue() != null ?
- ((RangeQueryCriteria)criteria).getEndValue():"");
- criteriaHash.put("inclusive", Boolean.toString(((RangeQueryCriteria) criteria).getInclusive()));
- } else if(criteria instanceof BooleanQueryCriteria){
- BooleanQueryCriteria boolQuery = (BooleanQueryCriteria) criteria;
- criteriaHash.put("operator", boolQuery.getOperator());
- Vector<Map<String, Object>> termsHash = new Vector<Map<String, Object>>();
- List<QueryCriteria> terms = boolQuery.getTerms();
-
- for (QueryCriteria term : terms) {
- Map<String, Object> termHash = getXmlRpcQueryCriteria(term);
- termsHash.add(termHash);
- }
- criteriaHash.put("terms", termsHash);
-
- } else {
- //should not happen
- }
- return criteriaHash;
- }
-
- public static QueryCriteria getQueryCriteriaFromXmlRpc(Map<String, Object> criteriaHash) {
- QueryCriteria criteria = null;
- if(criteriaHash.get("class").equals(TermQueryCriteria.class.getCanonicalName())){
- criteria = new TermQueryCriteria();
- criteria.setElementName((String) criteriaHash.get("elementName"));
- ((TermQueryCriteria)criteria).setValue((String) criteriaHash.get("elementValue"));
- } else if(criteriaHash.get("class").equals(RangeQueryCriteria.class.getCanonicalName())){
- criteria = new RangeQueryCriteria();
- criteria.setElementName((String) criteriaHash.get("elementName"));
- String startVal = criteriaHash.get("elementStartValue").equals("") ?
- null : (String)criteriaHash.get("elementStartValue");
- String endVal = criteriaHash.get("elementEndValue").equals("") ?
- null : (String)criteriaHash.get("elementEndValue");
- ((RangeQueryCriteria)criteria).setStartValue(startVal);
- ((RangeQueryCriteria)criteria).setEndValue(endVal);
- ((RangeQueryCriteria)criteria).setInclusive(Boolean.parseBoolean((String) criteriaHash.get("inclusive")));
- } else if(criteriaHash.get("class").equals(BooleanQueryCriteria.class.getCanonicalName())){
- criteria = new BooleanQueryCriteria();
- try{
- ((BooleanQueryCriteria)criteria).setOperator((Integer) criteriaHash.get("operator"));
- } catch (QueryFormulationException e){
- System.out.println("Error generating Boolean Query.");
- }
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> terms = (List<Map<String, Object>>) criteriaHash.get("terms");
- for (Map<String, Object> term : terms) {
- QueryCriteria termCriteria = getQueryCriteriaFromXmlRpc(term);
- try {
- ((BooleanQueryCriteria) criteria).addTerm(termCriteria);
- } catch (QueryFormulationException e) {
- System.out.println("Error generating Boolean Query.");
- }
- }
-
- }
+ return extractors;
+ }
- return criteria;
-
- }
+ @SuppressWarnings("unchecked")
+ public static ExtractorSpec getExtractorSpecFromXmlRpc(
+ Map<String, Object> extractorSpecHash) {
+ ExtractorSpec spec = new ExtractorSpec();
+ spec.setClassName((String) extractorSpecHash.get("className"));
+ spec
+ .setConfiguration(getPropertiesFromXmlRpc((Map<String, String>) extractorSpecHash
+ .get("config")));
+ return spec;
+ }
+
+ public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Map<String, Object>> handlersVector) {
+ List<TypeHandler> handlers = new Vector<TypeHandler>();
+
+ if (handlersVector != null && handlersVector.size() > 0) {
+ for (Map<String, Object> typeHandlerHash : handlersVector) {
+ handlers.add(getTypeHandlerFromXmlRpc(typeHandlerHash));
+ }
+ }
+
+ return handlers;
+ }
+
+ public static TypeHandler getTypeHandlerFromXmlRpc(
+ Map<String, Object> typeHandlerHash) {
+ TypeHandler typeHandler = GenericFileManagerObjectFactory
+ .getTypeHandlerFromClassName((String) typeHandlerHash.get("className"));
+ if (typeHandler != null) {
+ typeHandler.setElementName((String) typeHandlerHash.get("elementName"));
+ }
+ return typeHandler;
+ }
+
+ public static Properties getPropertiesFromXmlRpc(Map<String, String> propHash) {
+ Properties props = new Properties();
+
+ if (propHash != null && propHash.keySet().size() > 0) {
+ for (Map.Entry<String, String> propName : propHash.entrySet()) {
+ String propValue = propName.getValue();
+ props.setProperty(propName.getKey(), propValue);
+ }
+ }
+
+ return props;
+ }
+
+ public static Map<String, String> getXmlRpcProperties(Properties props) {
+ Map<String, String> propHash = new Hashtable<String, String>();
+
+ if (props != null && props.keySet().size() > 0) {
+ for (Object o : props.keySet()) {
+ String propName = (String) o;
+ String propValue = props.getProperty(propName);
+ propHash.put(propName, propValue);
+ }
+ }
+
+ return propHash;
+ }
+
+
+ public static Vector<Map<String, Object>> getXmlRpcReferences(List<Reference> references) {
+ Vector<Map<String, Object>> refVector = new Vector<Map<String, Object>>();
+
+ if (references == null) {
+ return refVector;
+ }
+
+ for (Reference reference : references) {
+ Map<String, Object> refHash = getXmlRpcReference(reference);
+ refVector.add(refHash);
+ }
+
+ return refVector;
+ }
+
+ public static List<Reference> getReferencesFromXmlRpc(Vector<Map<String, Object>> referenceVector) {
+ List<Reference> references = new Vector<Reference>();
+ for (Map<String, Object> aReferenceVector : referenceVector) {
+ Reference r = getReferenceFromXmlRpc(aReferenceVector);
+ references.add(r);
+ }
+ return references;
+ }
+
+ public static Map<String, Object> getXmlRpcReference(Reference reference) {
+ Map<String, Object> referenceHash = new Hashtable<String, Object>();
+ referenceHash.put("origReference", reference.getOrigReference());
+ referenceHash.put("dataStoreReference", reference
+ .getDataStoreReference() != null ? reference
+ .getDataStoreReference() : "");
+ referenceHash.put("fileSize",
+ Long.toString(reference.getFileSize()));
+ referenceHash.put("mimeType", (reference.getMimeType() == null) ? ""
+ : reference.getMimeType().getName());
+ return referenceHash;
+ }
+
+ public static Reference getReferenceFromXmlRpc(Map<String, Object> referenceHash) {
+ Reference reference = new Reference();
+ reference.setDataStoreReference((String) referenceHash
+ .get("dataStoreReference"));
+ reference.setOrigReference((String) referenceHash.get("origReference"));
+ reference.setFileSize(Long.parseLong(referenceHash.get("fileSize").toString()));
+ reference.setMimeType((String) referenceHash.get("mimeType"));
+ return reference;
+ }
+
+ public static Reference getReferenceFromXmlRpcHashtable(Map<String, Object> referenceHash) {
+ Reference reference = new Reference();
+ reference.setDataStoreReference((String) referenceHash
+ .get("dataStoreReference"));
+ reference.setOrigReference((String) referenceHash.get("origReference"));
+ reference.setFileSize(Long.parseLong(referenceHash.get("fileSize").toString()));
+ reference.setMimeType((String) referenceHash.get("mimeType"));
+ return reference;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcElementListHashtable(List<Element> elementList) {
+ Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
+ for (Element element : elementList) {
+ Map<String, Object> elementHash = getXmlRpcElementHashTable(element);
+ elementVector.add(elementHash);
+ }
+ return elementVector;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcElementList(List<Element> elementList) {
+ Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
+ for (Element element : elementList) {
+ Map<String, Object> elementHash = getXmlRpcElement(element);
+ elementVector.add(elementHash);
+ }
+ return elementVector;
+ }
+
+ public static List<Element> getElementListFromXmlRpc(Vector<Map<String, Object>> elementVector) {
+ List<Element> elementList = new Vector<Element>(elementVector.size());
+ for (Map<String, Object> elementHash : elementVector) {
+ Element element = getElementFromXmlRpc(elementHash);
+ elementList.add(element);
+ }
+ return elementList;
+ }
+
+ public static Map<String, Object> getXmlRpcElement(Element element) {
+ Map<String, Object> elementHash = new HashMap<String, Object>();
+
+ elementHash.put("id", element.getElementId());
+ elementHash.put("name", element.getElementName());
+ elementHash.put("dcElement", element.getDCElement() != null ? element
+ .getDCElement() : "");
+ elementHash.put("description",
+ element.getDescription() != null ? element.getDescription()
+ : "");
+
+ return elementHash;
+ }
+
+ public static Map<String, Object> getXmlRpcElementHashTable(Element element) {
+ Map<String, Object> elementHash = new Hashtable<String, Object>();
+
+ elementHash.put("id", element.getElementId());
+ elementHash.put("name", element.getElementName());
+ elementHash.put("dcElement", element.getDCElement() != null ? element
+ .getDCElement() : "");
+ elementHash.put("description",
+ element.getDescription() != null ? element.getDescription()
+ : "");
+
+ return elementHash;
+ }
+
+ public static Element getElementFromXmlRpc(Map<String, Object> elementHash) {
+ Element element = new Element();
+ element.setElementId((String) elementHash.get("id"));
+ element.setElementName((String) elementHash.get("name"));
+ element.setDescription((String) elementHash.get("description"));
+ element.setDCElement((String) elementHash.get("dcElement"));
+
+ return element;
+ }
+
+ public static Map<String, Object> getXmlRpcQuery(Query query) {
+ Map<String, Object> queryHash = new Hashtable<String, Object>();
+ Vector<Map<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
+ queryHash.put("criteria", criteriaVector);
+ return queryHash;
+ }
+
+ public static Query getQueryFromXmlRpc(Map<String, Object> queryHash) {
+ Query query = new Query();
+ @SuppressWarnings("unchecked")
+ List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
+ .get("criteria"));
+ query.setCriteria(criteria);
+ return query;
+ }
+
+ public static Vector<Map<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
+ Vector<Map<String, Object>> criteriaVector = new Vector<Map<String, Object>>(criteriaList.size());
+ for (QueryCriteria criteria : criteriaList) {
+ Map<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
+ criteriaVector.add(criteriaHash);
+ }
+
+ return criteriaVector;
+ }
+
+ public static List<QueryCriteria> getQueryCriteriaListFromXmlRpc(Vector<Map<String, Object>> criteriaVector) {
+
+ List<QueryCriteria> criteriaList = new Vector<QueryCriteria>(criteriaVector.size());
+ for (Map<String, Object> criteriaHash : criteriaVector) {
+ QueryCriteria criteria = getQueryCriteriaFromXmlRpc(criteriaHash);
+ criteriaList.add(criteria);
+ }
+ return criteriaList;
+ }
+
+ public static Map<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
+ Map<String, Object> criteriaHash = new Hashtable<String, Object>();
+ criteriaHash.put("class", criteria.getClass().getCanonicalName());
+
+ if (criteria instanceof TermQueryCriteria) {
+ criteriaHash.put("elementName", criteria.getElementName());
+ criteriaHash.put("elementValue", ((TermQueryCriteria) criteria).getValue());
+ } else if (criteria instanceof RangeQueryCriteria) {
+ criteriaHash.put("elementName", criteria.getElementName());
+ criteriaHash.put("elementStartValue", ((RangeQueryCriteria) criteria).getStartValue() != null ?
+ ((RangeQueryCriteria) criteria).getStartValue() : "");
+ criteriaHash.put("elementEndValue", ((RangeQueryCriteria) criteria).getEndValue() != null ?
+ ((RangeQueryCriteria) criteria).getEndValue() : "");
+ criteriaHash.put("inclusive", Boolean.toString(((RangeQueryCriteria) criteria).getInclusive()));
+ } else if (criteria instanceof BooleanQueryCriteria) {
+ BooleanQueryCriteria boolQuery = (BooleanQueryCriteria) criteria;
+ criteriaHash.put("operator", boolQuery.getOperator());
+ Vector<Map<String, Object>> termsHash = new Vector<Map<String, Object>>();
+ List<QueryCriteria> terms = boolQuery.getTerms();
+
+ for (QueryCriteria term : terms) {
+ Map<String, Object> termHash = getXmlRpcQueryCriteria(term);
+ termsHash.add(termHash);
+ }
+ criteriaHash.put("terms", termsHash);
+
+ } else {
+ //should not happen
+ }
+ return criteriaHash;
+ }
+
+ public static QueryCriteria getQueryCriteriaFromXmlRpc(Map<String, Object> criteriaHash) {
+ QueryCriteria criteria = null;
+ if (criteriaHash.get("class").equals(TermQueryCriteria.class.getCanonicalName())) {
+ criteria = new TermQueryCriteria();
+ criteria.setElementName((String) criteriaHash.get("elementName"));
+ ((TermQueryCriteria) criteria).setValue((String) criteriaHash.get("elementValue"));
+ } else if (criteriaHash.get("class").equals(RangeQueryCriteria.class.getCanonicalName())) {
+ criteria = new RangeQueryCriteria();
+ criteria.setElementName((String) criteriaHash.get("elementName"));
+ String startVal = criteriaHash.get("elementStartValue").equals("") ?
+ null : (String) criteriaHash.get("elementStartValue");
+ String endVal = criteriaHash.get("elementEndValue").equals("") ?
+ null : (String) criteriaHash.get("elementEndValue");
+ ((RangeQueryCriteria) criteria).setStartValue(startVal);
+ ((RangeQueryCriteria) criteria).setEndValue(endVal);
+ ((RangeQueryCriteria) criteria).setInclusive(Boolean.parseBoolean((String) criteriaHash.get("inclusive")));
+ } else if (criteriaHash.get("class").equals(BooleanQueryCriteria.class.getCanonicalName())) {
+ criteria = new BooleanQueryCriteria();
+ try {
+ ((BooleanQueryCriteria) criteria).setOperator((Integer) criteriaHash.get("operator"));
+ } catch (QueryFormulationException e) {
+ System.out.println("Error generating Boolean Query.");
+ }
+ @SuppressWarnings("unchecked")
+ List<Map<String, Object>> terms = (List<Map<String, Object>>) criteriaHash.get("terms");
+ for (Map<String, Object> term : terms) {
+ QueryCriteria termCriteria = getQueryCriteriaFromXmlRpc(term);
+ try {
+ ((BooleanQueryCriteria) criteria).addTerm(termCriteria);
+ } catch (QueryFormulationException e) {
+ System.out.println("Error generating Boolean Query.");
+ }
+ }
+
+ }
+
+ return criteria;
+
+ }
}
http://git-wip-us.apache.org/repos/asf/oodt/blob/8705ccf4/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
index 0f10a81..63d1eb6 100644
--- a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
+++ b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
@@ -487,15 +487,17 @@ public class Metadata {
this.children = new Hashtable<String, Group>();
}
+ /**
+ * Create Metadata Group.
+ * By default we create a group using a Hashtable for XMLRPC support. Once this has been superceeded by the Avro
+ * Impl we should make the HashMap implementation the default.
+ * @param name
+ * @param legacy
+ */
public Group(String name, boolean legacy) {
this.name = name;
this.values = new Vector<String>();
- if(legacy){
- this.children = new Hashtable<String, Group>();
- }
- else{
- this.children = new ConcurrentHashMap<String, Group>();
- }
+ this.children = legacy ? new Hashtable<String, Group>() : new ConcurrentHashMap<String, Group>();
}
[4/6] oodt git commit: OODT-917 alter XMLRPC interface to support
more generic map types where suitable
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/oodt/blob/8705ccf4/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
index cb80e08..5e84249 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
@@ -55,8 +55,8 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.util.Hashtable;
-import java.util.Map;
import java.util.List;
+import java.util.Map;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -66,1334 +66,1326 @@ import java.util.logging.Logger;
* @author mattmann (Chris Mattmann)
* @author bfoster (Brian Foster)
* @version $Revision$
- *
- * <p>
- * The XML RPC based file manager client.
- * </p>
- *
+ * <p/>
+ * <p> The XML RPC based file manager client. </p>
*/
public class XmlRpcFileManagerClient {
- /* our xml rpc client */
- private XmlRpcClient client = null;
-
- /* our log stream */
- private static Logger LOG = Logger.getLogger(XmlRpcFileManagerClient.class
- .getName());
-
- /* file manager url */
- private URL fileManagerUrl = null;
-
- /* data transferer needed if client is request to move files itself */
- private DataTransfer dataTransfer = null;
-
- public XmlRpcFileManagerClient(final URL url) throws ConnectionException {
- this(url, true);
- }
-
- /**
- * <p>
- * Constructs a new XmlRpcFileManagerClient with the given <code>url</code>.
- * </p>
- *
- * @param url
- * The url pointer to the xml rpc file manager service.
- * @param testConnection
- * Whether or not to check if server at given url is alive.
- */
- public XmlRpcFileManagerClient(final URL url, boolean testConnection)
- throws ConnectionException {
- // set up the configuration, if there is any
- if (System.getProperty("org.apache.oodt.cas.filemgr.properties") != null) {
- String configFile = System
- .getProperty("org.apache.oodt.cas.filemgr.properties");
- LOG.log(Level.INFO,
- "Loading File Manager Configuration Properties from: ["
- + configFile + "]");
- try {
- System.getProperties().load(
- new FileInputStream(new File(configFile)));
- } catch (Exception e) {
- LOG.log(Level.INFO,
- "Error loading configuration properties from: ["
- + configFile + "]");
- }
-
- }
-
- XmlRpcTransportFactory transportFactory = new XmlRpcTransportFactory() {
-
- public XmlRpcTransport createTransport()
- throws XmlRpcClientException {
- HttpClient client = new HttpClient();
- client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
- new HttpMethodRetryHandler() {
-
- public boolean retryMethod(HttpMethod method,
- IOException e, int count) {
- if (count < Integer
- .getInteger(
- "org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retries",
- 3)) {
- try {
- Thread
- .sleep(Integer
- .getInteger(
- "org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retry.interval.seconds",
- 0) * 1000);
- return true;
- } catch (Exception ignored) {
- }
- }
- return false;
- }
-
- });
- CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(
- url, client);
- transport
- .setConnectionTimeout(Integer
- .getInteger(
- "org.apache.oodt.cas.filemgr.system.xmlrpc.connectionTimeout.minutes",
- 20) * 60 * 1000);
- transport
- .setTimeout(Integer
- .getInteger(
- "org.apache.oodt.cas.filemgr.system.xmlrpc.requestTimeout.minutes",
- 60) * 60 * 1000);
-
- return transport;
- }
-
- public void setProperty(String arg0, Object arg1) {
- }
-
- };
-
- client = new XmlRpcClient(url, transportFactory);
- fileManagerUrl = url;
-
- if (testConnection && !isAlive()) {
- throw new ConnectionException("Exception connecting to filemgr: ["
- + this.fileManagerUrl + "]");
- }
-
- }
-
- public boolean refreshConfigAndPolicy() {
- boolean success;
-
- Vector<Object> argList = new Vector<Object>();
- try {
- success = (Boolean) client.execute("filemgr.refreshConfigAndPolicy",
- argList);
- } catch (XmlRpcException e) {
- LOG.log(Level.WARNING, "XmlRpcException when connecting to filemgr: ["
- + this.fileManagerUrl + "]");
- success = false;
- } catch (IOException e) {
- LOG.log(Level.WARNING, "IOException when connecting to filemgr: ["
- + this.fileManagerUrl + "]");
- success = false;
- }
-
- return success;
- }
-
- public boolean isAlive() {
- boolean connected;
+ /* our xml rpc client */
+ private XmlRpcClient client = null;
- Vector<Object> argList = new Vector<Object>();
- try {
- connected = (Boolean) client.execute("filemgr.isAlive", argList);
- } catch (XmlRpcException e) {
- LOG.log(Level.WARNING,
- "XmlRpcException when connecting to filemgr: ["
- + this.fileManagerUrl + "]");
- connected = false;
- } catch (IOException e) {
- LOG.log(Level.WARNING, "IOException when connecting to filemgr: ["
- + this.fileManagerUrl + "]");
- connected = false;
- }
+ /* our log stream */
+ private static Logger LOG = Logger.getLogger(XmlRpcFileManagerClient.class
+ .getName());
- return connected;
- }
+ /* file manager url */
+ private URL fileManagerUrl = null;
- public boolean transferringProduct(Product product)
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
+ /* data transferer needed if client is request to move files itself */
+ private DataTransfer dataTransfer = null;
- boolean success;
+ public XmlRpcFileManagerClient(final URL url) throws ConnectionException {
+ this(url, true);
+ }
- try {
- success = (Boolean) client.execute("filemgr.transferringProduct",
- argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ /**
+ * <p> Constructs a new XmlRpcFileManagerClient with the given <code>url</code>. </p>
+ *
+ * @param url The url pointer to the xml rpc file manager service.
+ * @param testConnection Whether or not to check if server at given url is alive.
+ */
+ public XmlRpcFileManagerClient(final URL url, boolean testConnection)
+ throws ConnectionException {
+ // set up the configuration, if there is any
+ if (System.getProperty("org.apache.oodt.cas.filemgr.properties") != null) {
+ String configFile = System
+ .getProperty("org.apache.oodt.cas.filemgr.properties");
+ LOG.log(Level.INFO,
+ "Loading File Manager Configuration Properties from: ["
+ + configFile + "]");
+ try {
+ System.getProperties().load(
+ new FileInputStream(new File(configFile)));
+ } catch (Exception e) {
+ LOG.log(Level.INFO,
+ "Error loading configuration properties from: ["
+ + configFile + "]");
+ }
- return success;
}
- public boolean removeProductTransferStatus(Product product)
- throws DataTransferException {
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- Vector<Object> argList = new Vector<Object>();
- argList.add(productHash);
-
- boolean success;
+ XmlRpcTransportFactory transportFactory = new XmlRpcTransportFactory() {
- try {
- success = (Boolean) client.execute(
- "filemgr.removeProductTransferStatus", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ public XmlRpcTransport createTransport()
+ throws XmlRpcClientException {
+ HttpClient client = new HttpClient();
+ client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
+ new HttpMethodRetryHandler() {
- return success;
- }
+ public boolean retryMethod(HttpMethod method,
+ IOException e, int count) {
+ if (count < Integer
+ .getInteger(
+ "org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retries",
+ 3)) {
+ try {
+ Thread
+ .sleep(Integer
+ .getInteger(
+ "org.apache.oodt.cas.filemgr.system.xmlrpc.connection.retry.interval.seconds",
+ 0) * 1000);
+ return true;
+ } catch (Exception ignored) {
+ }
+ }
+ return false;
+ }
+
+ });
+ CommonsXmlRpcTransport transport = new CommonsXmlRpcTransport(
+ url, client);
+ transport
+ .setConnectionTimeout(Integer
+ .getInteger(
+ "org.apache.oodt.cas.filemgr.system.xmlrpc.connectionTimeout.minutes",
+ 20) * 60 * 1000);
+ transport
+ .setTimeout(Integer
+ .getInteger(
+ "org.apache.oodt.cas.filemgr.system.xmlrpc.requestTimeout.minutes",
+ 60) * 60 * 1000);
+
+ return transport;
+ }
- public boolean isTransferComplete(Product product)
- throws DataTransferException {
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- Vector<Object> argList = new Vector<Object>();
- argList.add(productHash);
+ public void setProperty(String arg0, Object arg1) {
+ }
- boolean success;
+ };
- try {
- success = (Boolean) client.execute("filemgr.isTransferComplete",
- argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ client = new XmlRpcClient(url, transportFactory);
+ fileManagerUrl = url;
- return success;
+ if (testConnection && !isAlive()) {
+ throw new ConnectionException("Exception connecting to filemgr: ["
+ + this.fileManagerUrl + "]");
}
- public boolean moveProduct(Product product, String newPath)
- throws DataTransferException {
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- Vector<Object> argList = new Vector<Object>();
- argList.add(productHash);
- argList.add(newPath);
-
- boolean success;
+ }
- try {
- success = (Boolean) client.execute("filemgr.moveProduct", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ public boolean refreshConfigAndPolicy() {
+ boolean success;
- return success;
+ Vector<Object> argList = new Vector<Object>();
+ try {
+ success = (Boolean) client.execute("filemgr.refreshConfigAndPolicy",
+ argList);
+ } catch (XmlRpcException e) {
+ LOG.log(Level.WARNING, "XmlRpcException when connecting to filemgr: ["
+ + this.fileManagerUrl + "]");
+ success = false;
+ } catch (IOException e) {
+ LOG.log(Level.WARNING, "IOException when connecting to filemgr: ["
+ + this.fileManagerUrl + "]");
+ success = false;
}
- public boolean modifyProduct(Product product) throws CatalogException {
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
-
- Vector<Object> argList = new Vector<Object>();
- argList.add(productHash);
-
- boolean success;
-
- try {
- success = (Boolean) client.execute("filemgr.modifyProduct",
- argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ return success;
+ }
- return success;
+ public boolean isAlive() {
+ boolean connected;
+ Vector<Object> argList = new Vector<Object>();
+ try {
+ connected = (Boolean) client.execute("filemgr.isAlive", argList);
+ } catch (XmlRpcException e) {
+ LOG.log(Level.WARNING,
+ "XmlRpcException when connecting to filemgr: ["
+ + this.fileManagerUrl + "]");
+ connected = false;
+ } catch (IOException e) {
+ LOG.log(Level.WARNING, "IOException when connecting to filemgr: ["
+ + this.fileManagerUrl + "]");
+ connected = false;
}
- public boolean removeProduct(Product product) throws CatalogException {
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
-
- Vector<Object> argList = new Vector<Object>();
- argList.add(productHash);
-
- boolean success;
+ return connected;
+ }
- try {
- success = (Boolean) client.execute("filemgr.removeProduct",
- argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ public boolean transferringProduct(Product product)
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
- return success;
+ boolean success;
+ try {
+ success = (Boolean) client.execute("filemgr.transferringProduct",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- @SuppressWarnings("unchecked")
- public FileTransferStatus getCurrentFileTransfer()
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
-
- Map<String, Object> statusHash;
- FileTransferStatus status = null;
+ return success;
+ }
- try {
- statusHash = (Map<String, Object>) client.execute(
- "filemgr.getCurrentFileTransfer", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ public boolean removeProductTransferStatus(Product product)
+ throws DataTransferException {
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productHash);
- if (statusHash != null) {
- status = XmlRpcStructFactory
- .getFileTransferStatusFromXmlRpc(statusHash);
- }
+ boolean success;
- return status;
+ try {
+ success = (Boolean) client.execute(
+ "filemgr.removeProductTransferStatus", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- @SuppressWarnings("unchecked")
- public List<FileTransferStatus> getCurrentFileTransfers()
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
-
- Vector<Map<String, Object>> statusVector;
- List<FileTransferStatus> statuses = null;
+ return success;
+ }
- try {
- statusVector = (Vector<Map<String, Object>>) client.execute(
- "filemgr.getCurrentFileTransfers", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ public boolean isTransferComplete(Product product)
+ throws DataTransferException {
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productHash);
- if (statusVector != null) {
- statuses = XmlRpcStructFactory
- .getFileTransferStatusesFromXmlRpc(statusVector);
- }
+ boolean success;
- return statuses;
+ try {
+ success = (Boolean) client.execute("filemgr.isTransferComplete",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- public double getProductPctTransferred(Product product)
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
- Double pct;
+ return success;
+ }
- try {
- pct = (Double) client.execute("filemgr.getProductPctTransferred",
- argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ public boolean moveProduct(Product product, String newPath)
+ throws DataTransferException {
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productHash);
+ argList.add(newPath);
- if (pct != null) {
- return pct;
- }
+ boolean success;
- return -1.0;
+ try {
+ success = (Boolean) client.execute("filemgr.moveProduct", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- public double getRefPctTransferred(Reference reference)
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> refHash = XmlRpcStructFactory
- .getXmlRpcReference(reference);
- argList.add(refHash);
- Double pct;
-
- try {
- pct = (Double) client.execute("filemgr.getRefPctTransferred",
- argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
-
- if (pct != null) {
- return pct;
- }
-
- return -1.0;
- }
+ return success;
+ }
- @SuppressWarnings("unchecked")
- public ProductPage pagedQuery(Query query, ProductType type, int pageNum)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> queryHash = XmlRpcStructFactory
- .getXmlRpcQuery(query);
- Map<String, Object> typeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
- argList.add(queryHash);
- argList.add(typeHash);
- argList.add(pageNum);
+ public boolean modifyProduct(Product product) throws CatalogException {
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
- Map<String, Object> pageHash;
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productHash);
- try {
- pageHash = (Map<String, Object>) client.execute(
- "filemgr.pagedQuery", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ boolean success;
- return XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
+ try {
+ success = (Boolean) client.execute("filemgr.modifyProduct",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public ProductPage getFirstPage(ProductType type) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ return success;
- ProductPage page = null;
- Map<String, Object> pageHash;
+ }
- try {
- pageHash = (Map<String, Object>) client.execute(
- "filemgr.getFirstPage", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ public boolean removeProduct(Product product) throws CatalogException {
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
- if (pageHash != null) {
- page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
- }
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productHash);
- return page;
+ boolean success;
+ try {
+ success = (Boolean) client.execute("filemgr.removeProduct",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public ProductPage getLastPage(ProductType type) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ return success;
- ProductPage page = null;
- Map<String, Object> pageHash;
+ }
- try {
- pageHash = (Map<String, Object>) client.execute(
- "filemgr.getLastPage", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ @SuppressWarnings("unchecked")
+ public FileTransferStatus getCurrentFileTransfer()
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
- if (pageHash != null) {
- page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
- }
+ Map<String, Object> statusHash;
+ FileTransferStatus status = null;
- return page;
+ try {
+ statusHash = (Map<String, Object>) client.execute(
+ "filemgr.getCurrentFileTransfer", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- @SuppressWarnings("unchecked")
- public ProductPage getNextPage(ProductType type, ProductPage currPage)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- argList.add(XmlRpcStructFactory.getXmlRpcProductPage(currPage));
-
- ProductPage page = null;
- Map<String, Object> pageHash;
-
- try {
- pageHash = (Map<String, Object>) client.execute(
- "filemgr.getNextPage", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
-
- if (pageHash != null) {
- page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
- }
-
- return page;
+ if (statusHash != null) {
+ status = XmlRpcStructFactory
+ .getFileTransferStatusFromXmlRpc(statusHash);
}
- @SuppressWarnings("unchecked")
- public ProductPage getPrevPage(ProductType type, ProductPage currPage)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- argList.add(XmlRpcStructFactory.getXmlRpcProductPage(currPage));
-
- ProductPage page = null;
- Map<String, Object> pageHash;
+ return status;
+ }
- try {
- pageHash = (Map<String, Object>) client.execute(
- "filemgr.getPrevPage", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ @SuppressWarnings("unchecked")
+ public List<FileTransferStatus> getCurrentFileTransfers()
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
- if (pageHash != null) {
- page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
- }
+ Vector<Map<String, Object>> statusVector;
+ List<FileTransferStatus> statuses = null;
- return page;
+ try {
+ statusVector = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.getCurrentFileTransfers", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- public String addProductType(ProductType type)
- throws RepositoryManagerException {
- String productTypeId;
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> typeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
- argList.add(typeHash);
+ if (statusVector != null) {
+ statuses = XmlRpcStructFactory
+ .getFileTransferStatusesFromXmlRpc(statusVector);
+ }
- try {
- productTypeId = (String) client.execute("filemgr.addProductType",
- argList);
- } catch (XmlRpcException e) {
- throw new RepositoryManagerException(e);
- } catch (IOException e) {
- throw new RepositoryManagerException(e);
- }
+ return statuses;
+ }
- return productTypeId;
+ public double getProductPctTransferred(Product product)
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+ Double pct;
+ try {
+ pct = (Double) client.execute("filemgr.getProductPctTransferred",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- public boolean hasProduct(String productName) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(productName);
+ if (pct != null) {
+ return pct;
+ }
- boolean hasProduct;
+ return -1.0;
+ }
- try {
- hasProduct = (Boolean) client.execute("filemgr.hasProduct",
- argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ public double getRefPctTransferred(Reference reference)
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> refHash = XmlRpcStructFactory
+ .getXmlRpcReference(reference);
+ argList.add(refHash);
+ Double pct;
- return hasProduct;
+ try {
+ pct = (Double) client.execute("filemgr.getRefPctTransferred",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
+ }
+ if (pct != null) {
+ return pct;
}
- public int getNumProducts(ProductType type) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ return -1.0;
+ }
- Integer numProducts;
+ @SuppressWarnings("unchecked")
+ public ProductPage pagedQuery(Query query, ProductType type, int pageNum)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> queryHash = XmlRpcStructFactory
+ .getXmlRpcQuery(query);
+ Map<String, Object> typeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
+ argList.add(queryHash);
+ argList.add(typeHash);
+ argList.add(pageNum);
- try {
- numProducts = (Integer) client.execute("filemgr.getNumProducts",
- argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ Map<String, Object> pageHash;
- return numProducts;
+ try {
+ pageHash = (Map<String, Object>) client.execute(
+ "filemgr.pagedQuery", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public List<Product> getTopNProducts(int n) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(n);
+ return XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
+ }
- Vector<Map<String, Object>> topNProducts;
+ @SuppressWarnings("unchecked")
+ public ProductPage getFirstPage(ProductType type) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- try {
- topNProducts = (Vector<Map<String, Object>>) client.execute(
- "filemgr.getTopNProducts", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ ProductPage page = null;
+ Map<String, Object> pageHash;
- return XmlRpcStructFactory
- .getProductListFromXmlRpc(topNProducts);
+ try {
+ pageHash = (Map<String, Object>) client.execute(
+ "filemgr.getFirstPage", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public List<Product> getTopNProducts(int n, ProductType type)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(n);
- Map<String, Object> productTypeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
- argList.add(productTypeHash);
-
- Vector<Map<String, Object>> topNProducts;
+ if (pageHash != null) {
+ page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
+ }
- try {
- topNProducts = (Vector<Map<String, Object>>) client.execute(
- "filemgr.getTopNProducts", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ return page;
- return XmlRpcStructFactory
- .getProductListFromXmlRpc(topNProducts);
- }
+ }
- public void setProductTransferStatus(Product product)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
+ @SuppressWarnings("unchecked")
+ public ProductPage getLastPage(ProductType type) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- try {
- client.execute("filemgr.setProductTransferStatus", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ ProductPage page = null;
+ Map<String, Object> pageHash;
+ try {
+ pageHash = (Map<String, Object>) client.execute(
+ "filemgr.getLastPage", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- public void addProductReferences(Product product) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
-
- try {
- client.execute("filemgr.addProductReferences", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ if (pageHash != null) {
+ page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
}
- public void addMetadata(Product product, Metadata metadata)
- throws CatalogException {
+ return page;
+ }
+ @SuppressWarnings("unchecked")
+ public ProductPage getNextPage(ProductType type, ProductPage currPage)
+ throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
- argList.add(metadata.getHashTable());
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ argList.add(XmlRpcStructFactory.getXmlRpcProductPage(currPage));
+
+ ProductPage page = null;
+ Map<String, Object> pageHash;
try {
- client.execute("filemgr.addMetadata", argList);
+ pageHash = (Map<String, Object>) client.execute(
+ "filemgr.getNextPage", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
} catch (IOException e) {
throw new CatalogException(e);
}
+
+ if (pageHash != null) {
+ page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
+ }
+
+ return page;
}
- public boolean updateMetadata(Product product, Metadata met)
+ @SuppressWarnings("unchecked")
+ public ProductPage getPrevPage(ProductType type, ProductPage currPage)
throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
- argList.add(met.getHashTable());
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ argList.add(XmlRpcStructFactory.getXmlRpcProductPage(currPage));
- boolean result;
+ ProductPage page = null;
+ Map<String, Object> pageHash;
try {
- result = (Boolean) client.execute("filemgr.updateMetadata", argList);
+ pageHash = (Map<String, Object>) client.execute(
+ "filemgr.getPrevPage", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
} catch (IOException e) {
throw new CatalogException(e);
}
- return result;
+ if (pageHash != null) {
+ page = XmlRpcStructFactory.getProductPageFromXmlRpc(pageHash);
+ }
+ return page;
}
- public String catalogProduct(Product product) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
+ public String addProductType(ProductType type)
+ throws RepositoryManagerException {
+ String productTypeId;
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> typeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
+ argList.add(typeHash);
- String productId;
+ try {
+ productTypeId = (String) client.execute("filemgr.addProductType",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new RepositoryManagerException(e);
+ } catch (IOException e) {
+ throw new RepositoryManagerException(e);
+ }
- try {
- productId = (String) client.execute("filemgr.catalogProduct",
- argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ return productTypeId;
+
+ }
+
+ public boolean hasProduct(String productName) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productName);
+
+ boolean hasProduct;
- return productId;
+ try {
+ hasProduct = (Boolean) client.execute("filemgr.hasProduct",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public Metadata getMetadata(Product product) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
+ return hasProduct;
- Map<String, Object> metadata;
+ }
- try {
- metadata = (Map<String, Object>) client.execute(
- "filemgr.getMetadata", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ public int getNumProducts(ProductType type) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- Metadata m = new Metadata();
- m.addMetadata(metadata);
- return m;
+ Integer numProducts;
+ try {
+ numProducts = (Integer) client.execute("filemgr.getNumProducts",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings({ "unchecked", "rawtypes" })
- public Metadata getReducedMetadata(Product product, List<?> elements)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
- argList.add(new Vector(elements));
-
- Map<String, Object> metadata;
+ return numProducts;
+ }
- try {
- metadata = (Map<String, Object>) client.execute(
- "filemgr.getReducedMetadata", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ @SuppressWarnings("unchecked")
+ public List<Product> getTopNProducts(int n) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(n);
- Metadata m = new Metadata();
- m.addMetadata(metadata);
- return m;
+ Vector<Map<String, Object>> topNProducts;
+ try {
+ topNProducts = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.getTopNProducts", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- public boolean removeFile(String filePath) throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(filePath);
+ return XmlRpcStructFactory
+ .getProductListFromXmlRpc(topNProducts);
+ }
- boolean success;
+ @SuppressWarnings("unchecked")
+ public List<Product> getTopNProducts(int n, ProductType type)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(n);
+ Map<String, Object> productTypeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
+ argList.add(productTypeHash);
- try {
- success = (Boolean) client.execute("filemgr.removeFile", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ Vector<Map<String, Object>> topNProducts;
- return success;
+ try {
+ topNProducts = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.getTopNProducts", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- public byte[] retrieveFile(String filePath, int offset, int numBytes)
- throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(filePath);
- argList.add(offset);
- argList.add(numBytes);
+ return XmlRpcStructFactory
+ .getProductListFromXmlRpc(topNProducts);
+ }
- try {
- return (byte[]) client.execute("filemgr.retrieveFile", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
- }
+ public void setProductTransferStatus(Product product)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
- public void transferFile(String filePath, byte[] fileData, int offset,
- int numBytes) throws DataTransferException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(filePath);
- argList.add(fileData);
- argList.add(offset);
- argList.add(numBytes);
+ try {
+ client.execute("filemgr.setProductTransferStatus", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
+ }
- try {
- client.execute("filemgr.transferFile", argList);
- } catch (XmlRpcException e) {
- throw new DataTransferException(e);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
+ }
+
+ public void addProductReferences(Product product) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+
+ try {
+ client.execute("filemgr.addProductReferences", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
+ }
- @SuppressWarnings("unchecked")
- public List<Product> getProductsByProductType(ProductType type)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productTypeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
- argList.add(productTypeHash);
+ public void addMetadata(Product product, Metadata metadata)
+ throws CatalogException {
- Vector<Map<String, Object>> productVector;
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
+ argList.add(metadata.getHashTable());
- try {
- productVector = (Vector<Map<String, Object>>) client.execute(
- "filemgr.getProductsByProductType", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ try {
+ client.execute("filemgr.addMetadata", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
+ }
+ }
- if (productVector == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getProductListFromXmlRpc(productVector);
- }
+ public boolean updateMetadata(Product product, Metadata met)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
+ argList.add(met.getHashTable());
+
+ boolean result;
+
+ try {
+ result = (Boolean) client.execute("filemgr.updateMetadata", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public List<Element> getElementsByProductType(ProductType type)
- throws ValidationLayerException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productTypeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
+ return result;
- argList.add(productTypeHash);
+ }
- Vector<Map<String, Object>> elementVector;
+ public String catalogProduct(Product product) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(XmlRpcStructFactory.getXmlRpcProduct(product));
- try {
- elementVector = (Vector<Map<String, Object>>) client.execute(
- "filemgr.getElementsByProductType", argList);
- } catch (XmlRpcException e) {
- throw new ValidationLayerException(e);
- } catch (IOException e) {
- throw new ValidationLayerException(e);
- }
+ String productId;
- if (elementVector == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getElementListFromXmlRpc(elementVector);
- }
+ try {
+ productId = (String) client.execute("filemgr.catalogProduct",
+ argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public Element getElementById(String elementId)
- throws ValidationLayerException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(elementId);
+ return productId;
+ }
- Hashtable<String, Object> elementHash;
+ @SuppressWarnings("unchecked")
+ public Metadata getMetadata(Product product) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
- try {
- elementHash = (Hashtable<String, Object>) client.execute(
- "filemgr.getElementById", argList);
- } catch (XmlRpcException e) {
- throw new ValidationLayerException(e);
- } catch (IOException e) {
- throw new ValidationLayerException(e);
- }
+ Map<String, Object> metadata;
- if (elementHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
- }
+ try {
+ metadata = (Map<String, Object>) client.execute(
+ "filemgr.getMetadata", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public Element getElementByName(String elementName)
- throws ValidationLayerException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(elementName);
+ Metadata m = new Metadata();
+ m.addMetadata(metadata);
+ return m;
- Hashtable<String, Object> elementHash;
+ }
- try {
- elementHash = (Hashtable<String, Object>) client.execute(
- "filemgr.getElementByName", argList);
- } catch (XmlRpcException e) {
- throw new ValidationLayerException(e);
- } catch (IOException e) {
- throw new ValidationLayerException(e);
- }
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public Metadata getReducedMetadata(Product product, List<?> elements)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+ argList.add(new Vector(elements));
- if (elementHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
- }
+ Map<String, Object> metadata;
+
+ try {
+ metadata = (Map<String, Object>) client.execute(
+ "filemgr.getReducedMetadata", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public Element getElementByName(String elementName, ProductType type)
- throws ValidationLayerException {
- Vector<Object> argList = new Vector<Object>();
- argList.add(elementName);
- argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
+ Metadata m = new Metadata();
+ m.addMetadata(metadata);
+ return m;
- Hashtable<String, Object> elementHash;
+ }
- try {
- elementHash = (Hashtable<String, Object>) client.execute(
- "filemgr.getElementByName", argList);
- } catch (XmlRpcException e) {
- throw new ValidationLayerException(e);
- } catch (IOException e) {
- throw new ValidationLayerException(e);
- }
+ public boolean removeFile(String filePath) throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(filePath);
- if (elementHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
- }
- }
+ boolean success;
- public List<QueryResult> complexQuery(ComplexQuery complexQuery)
- throws CatalogException {
- try {
- Map<String, Object> complexQueryHash = XmlRpcStructFactory
- .getXmlRpcComplexQuery(complexQuery);
- Vector<Object> argList = new Vector<Object>();
- argList.add(complexQueryHash);
- @SuppressWarnings("unchecked")
- Vector<Map<String, Object>> queryResultHashVector = (Vector<Map<String, Object>>) client
- .execute("filemgr.complexQuery", argList);
- return XmlRpcStructFactory
- .getQueryResultsFromXmlRpc(queryResultHashVector);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException(e);
- }
+ try {
+ success = (Boolean) client.execute("filemgr.removeFile", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
- @SuppressWarnings("unchecked")
- public List<Product> query(Query query, ProductType type)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> queryHash = XmlRpcStructFactory
- .getXmlRpcQuery(query);
- Map<String, Object> typeHash = XmlRpcStructFactory
- .getXmlRpcProductType(type);
- argList.add(queryHash);
- argList.add(typeHash);
+ return success;
+ }
- Vector<Map<String, Object>> productVector;
+ public byte[] retrieveFile(String filePath, int offset, int numBytes)
+ throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(filePath);
+ argList.add(offset);
+ argList.add(numBytes);
- try {
- productVector = (Vector<Map<String, Object>>) client.execute(
- "filemgr.query", argList);
- } catch (XmlRpcException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException(e);
-
- } catch (IOException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException(e);
- }
+ try {
+ return (byte[]) client.execute("filemgr.retrieveFile", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
+ }
+ }
- if (productVector == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getProductListFromXmlRpc(productVector);
- }
+ public void transferFile(String filePath, byte[] fileData, int offset,
+ int numBytes) throws DataTransferException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(filePath);
+ argList.add(fileData);
+ argList.add(offset);
+ argList.add(numBytes);
+
+ try {
+ client.execute("filemgr.transferFile", argList);
+ } catch (XmlRpcException e) {
+ throw new DataTransferException(e);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
}
+ }
- @SuppressWarnings("unchecked")
- public ProductType getProductTypeByName(String productTypeName)
- throws RepositoryManagerException {
- Hashtable<String, Object> productTypeHash;
- Vector<Object> argList = new Vector<Object>();
- argList.add(productTypeName);
+ @SuppressWarnings("unchecked")
+ public List<Product> getProductsByProductType(ProductType type)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productTypeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
+ argList.add(productTypeHash);
- try {
- productTypeHash = (Hashtable<String, Object>) client.execute(
- "filemgr.getProductTypeByName", argList);
- } catch (XmlRpcException e) {
- throw new RepositoryManagerException(e.getLocalizedMessage());
- } catch (IOException e) {
- throw new RepositoryManagerException(e);
- }
+ Vector<Map<String, Object>> productVector;
- if (productTypeHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- }
+ try {
+ productVector = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.getProductsByProductType", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public ProductType getProductTypeById(String productTypeId)
- throws RepositoryManagerException {
- Hashtable<String, Object> productTypeHash;
- Vector<Object> argList = new Vector<Object>();
- argList.add(productTypeId);
+ if (productVector == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getProductListFromXmlRpc(productVector);
+ }
+ }
- try {
- productTypeHash = (Hashtable<String, Object>) client.execute(
- "filemgr.getProductTypeById", argList);
- } catch (XmlRpcException e) {
- throw new RepositoryManagerException(e);
- } catch (IOException e) {
- throw new RepositoryManagerException(e);
- }
+ @SuppressWarnings("unchecked")
+ public List<Element> getElementsByProductType(ProductType type)
+ throws ValidationLayerException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productTypeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
- if (productTypeHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- }
+ argList.add(productTypeHash);
+
+ Vector<Map<String, Object>> elementVector;
+
+ try {
+ elementVector = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.getElementsByProductType", argList);
+ } catch (XmlRpcException e) {
+ throw new ValidationLayerException(e);
+ } catch (IOException e) {
+ throw new ValidationLayerException(e);
}
- @SuppressWarnings("unchecked")
- public List<ProductType> getProductTypes()
- throws RepositoryManagerException {
- Vector<Object> argList = new Vector<Object>();
+ if (elementVector == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getElementListFromXmlRpc(elementVector);
+ }
+ }
- Vector<Map<String, Object>> productTypeVector;
+ @SuppressWarnings("unchecked")
+ public Element getElementById(String elementId)
+ throws ValidationLayerException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(elementId);
- try {
- productTypeVector = (Vector<Map<String, Object>>) client
- .execute("filemgr.getProductTypes", argList);
- } catch (XmlRpcException e) {
- throw new RepositoryManagerException(e);
- } catch (IOException e) {
- throw new RepositoryManagerException(e);
- }
+ Hashtable<String, Object> elementHash;
- if (productTypeVector == null) {
- return null;
- } else {
- return XmlRpcStructFactory
- .getProductTypeListFromXmlRpc(productTypeVector);
- }
+ try {
+ elementHash = (Hashtable<String, Object>) client.execute(
+ "filemgr.getElementById", argList);
+ } catch (XmlRpcException e) {
+ throw new ValidationLayerException(e);
+ } catch (IOException e) {
+ throw new ValidationLayerException(e);
}
- @SuppressWarnings("unchecked")
- public List<Reference> getProductReferences(Product product)
- throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
+ if (elementHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
+ }
+ }
- Vector<Map<String, Object>> productReferenceVector;
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
+ @SuppressWarnings("unchecked")
+ public Element getElementByName(String elementName)
+ throws ValidationLayerException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(elementName);
- try {
- productReferenceVector = (Vector<Map<String, Object>>) client
- .execute("filemgr.getProductReferences", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ Hashtable<String, Object> elementHash;
- if (productReferenceVector == null) {
- return null;
- } else {
- return XmlRpcStructFactory
- .getReferencesFromXmlRpc(productReferenceVector);
- }
+ try {
+ elementHash = (Hashtable<String, Object>) client.execute(
+ "filemgr.getElementByName", argList);
+ } catch (XmlRpcException e) {
+ throw new ValidationLayerException(e);
+ } catch (IOException e) {
+ throw new ValidationLayerException(e);
}
- @SuppressWarnings("unchecked")
- public Product getProductById(String productId) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
+ if (elementHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
+ }
+ }
- Map<String, Object> productHash;
- argList.add(productId);
+ @SuppressWarnings("unchecked")
+ public Element getElementByName(String elementName, ProductType type)
+ throws ValidationLayerException {
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(elementName);
+ argList.add(XmlRpcStructFactory.getXmlRpcProductType(type));
- try {
- productHash = (Map<String, Object>) client.execute(
- "filemgr.getProductById", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ Hashtable<String, Object> elementHash;
- if (productHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- }
+ try {
+ elementHash = (Hashtable<String, Object>) client.execute(
+ "filemgr.getElementByName", argList);
+ } catch (XmlRpcException e) {
+ throw new ValidationLayerException(e);
+ } catch (IOException e) {
+ throw new ValidationLayerException(e);
}
- @SuppressWarnings("unchecked")
- public Product getProductByName(String productName) throws CatalogException {
- Vector<Object> argList = new Vector<Object>();
+ if (elementHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getElementFromXmlRpc(elementHash);
+ }
+ }
+
+ public List<QueryResult> complexQuery(ComplexQuery complexQuery)
+ throws CatalogException {
+ try {
+ Map<String, Object> complexQueryHash = XmlRpcStructFactory
+ .getXmlRpcComplexQuery(complexQuery);
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(complexQueryHash);
+ @SuppressWarnings("unchecked")
+ Vector<Map<String, Object>> queryResultHashVector = (Vector<Map<String, Object>>) client
+ .execute("filemgr.complexQuery", argList);
+ return XmlRpcStructFactory
+ .getQueryResultsFromXmlRpc(queryResultHashVector);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException(e);
+ }
+ }
- Map<String, Object> productHash;
- argList.add(productName);
+ @SuppressWarnings("unchecked")
+ public List<Product> query(Query query, ProductType type)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> queryHash = XmlRpcStructFactory
+ .getXmlRpcQuery(query);
+ Map<String, Object> typeHash = XmlRpcStructFactory
+ .getXmlRpcProductType(type);
+ argList.add(queryHash);
+ argList.add(typeHash);
- try {
- productHash = (Map<String, Object>) client.execute(
- "filemgr.getProductByName", argList);
- } catch (XmlRpcException e) {
- throw new CatalogException(e);
- } catch (IOException e) {
- throw new CatalogException(e);
- }
+ Vector<Map<String, Object>> productVector;
- if (productHash == null) {
- return null;
- } else {
- return XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- }
+ try {
+ productVector = (Vector<Map<String, Object>>) client.execute(
+ "filemgr.query", argList);
+ } catch (XmlRpcException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException(e);
+
+ } catch (IOException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException(e);
}
- public String ingestProduct(Product product, Metadata metadata,
- boolean clientTransfer) throws VersioningException, XmlRpcException, FileManagerException {
- try {
- // ingest product
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
- argList.add(metadata.getHashTable());
- argList.add(clientTransfer);
- String productId = (String) client.execute("filemgr.ingestProduct",
- argList);
-
- if (clientTransfer) {
- LOG.log(Level.FINEST,
- "File Manager Client: clientTransfer enabled: "
- + "transfering product ["
- + product.getProductName() + "]");
-
- // we need to transfer the product ourselves
- // make sure we have the product ID
- if (productId == null) {
- throw new Exception("Request to ingest product: "
- + product.getProductName()
- + " but no product ID returned from File "
- + "Manager ingest");
- }
+ if (productVector == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getProductListFromXmlRpc(productVector);
+ }
+ }
- if (dataTransfer == null) {
- throw new Exception("Request to ingest product: ["
- + product.getProductName()
- + "] using client transfer, but no "
- + "dataTransferer specified!");
- }
+ @SuppressWarnings("unchecked")
+ public ProductType getProductTypeByName(String productTypeName)
+ throws RepositoryManagerException {
+ Hashtable<String, Object> productTypeHash;
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productTypeName);
- product.setProductId(productId);
+ try {
+ productTypeHash = (Hashtable<String, Object>) client.execute(
+ "filemgr.getProductTypeByName", argList);
+ } catch (XmlRpcException e) {
+ throw new RepositoryManagerException(e.getLocalizedMessage());
+ } catch (IOException e) {
+ throw new RepositoryManagerException(e);
+ }
- if (!Boolean.getBoolean("org.apache.oodt.cas.filemgr.serverside.versioning")) {
- // version the product
- Versioner versioner = GenericFileManagerObjectFactory
- .getVersionerFromClassName(product.getProductType()
- .getVersioner());
- if (versioner != null) {
- versioner.createDataStoreReferences(product, metadata);
- }
+ if (productTypeHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ }
+ }
- // add the newly versioned references to the data store
- try {
- addProductReferences(product);
- } catch (CatalogException e) {
- LOG
- .log(
- Level.SEVERE,
- "ingestProduct: RepositoryManagerException "
- + "when adding Product References for Product : "
- + product.getProductName()
- + " to RepositoryManager: Message: "
- + e);
- throw e;
- }
- } else {
- product.setProductReferences(getProductReferences(product));
- }
-
- // now transfer the product
- try {
- dataTransfer.transferProduct(product);
- // now update the product's transfer status in the data
- // store
- product.setTransferStatus(Product.STATUS_RECEIVED);
-
- try {
- setProductTransferStatus(product);
- } catch (CatalogException e) {
- LOG
- .log(
- Level.SEVERE,
- "ingestProduct: RepositoryManagerException "
- + "when updating product transfer status for Product: "
- + product.getProductName()
- + " Message: " + e);
- throw e;
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE,
- "ingestProduct: DataTransferException when transfering Product: "
- + product.getProductName() + ": Message: "
- + e);
- throw new DataTransferException(e);
- }
+ @SuppressWarnings("unchecked")
+ public ProductType getProductTypeById(String productTypeId)
+ throws RepositoryManagerException {
+ Hashtable<String, Object> productTypeHash;
+ Vector<Object> argList = new Vector<Object>();
+ argList.add(productTypeId);
- }
- return productId;
-
- // error versioning file
- } catch (VersioningException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "ingestProduct: VersioningException when versioning Product: "
- + product.getProductName() + " with Versioner "
- + product.getProductType().getVersioner()
- + ": Message: " + e);
- throw new VersioningException(e);
- } catch(XmlRpcException e2){
- LOG.log(Level.SEVERE, "Failed to ingest product [ name:" +product.getProductName() + "] :" + e2.getMessage() + " -- rolling back ingest");
- try {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
- client.execute("filemgr.removeProduct", argList);
- } catch (Exception e1) {
- LOG.log(Level.SEVERE, "Failed to rollback ingest of product ["
- + product + "] : " + e2.getMessage());
- }
- throw e2;
- }
- catch (Exception e) {
- LOG.log(Level.SEVERE, "Failed to ingest product [ id: " + product.getProductId() +
- "/ name:" +product.getProductName() + "] :" + e + " -- rolling back ingest");
- try {
- Vector<Object> argList = new Vector<Object>();
- Map<String, Object> productHash = XmlRpcStructFactory
- .getXmlRpcProduct(product);
- argList.add(productHash);
- client.execute("filemgr.removeProduct", argList);
- } catch (Exception e1) {
- LOG.log(Level.SEVERE, "Failed to rollback ingest of product ["
- + product + "] : " + e);
- }
- throw new FileManagerException("Failed to ingest product [" + product + "] : "
- + e);
- }
+ try {
+ productTypeHash = (Hashtable<String, Object>) client.execute(
+ "filemgr.getProductTypeById", argList);
+ } catch (XmlRpcException e) {
+ throw new RepositoryManagerException(e);
+ } catch (IOException e) {
+ throw new RepositoryManagerException(e);
+ }
+ if (productTypeHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
}
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<ProductType> getProductTypes()
+ throws RepositoryManagerException {
+ Vector<Object> argList = new Vector<Object>();
- @SuppressWarnings("unchecked")
- public Metadata getCatalogValues(Metadata metadata, ProductType productType)
- throws XmlRpcException, IOException {
- Vector<Object> args = new Vector<Object>();
- args.add(metadata.getHashTable());
- args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
+ Vector<Map<String, Object>> productTypeVector;
- Metadata m = new Metadata();
- m.addMetadata((Map<String, Object>) this.client.execute(
- "filemgr.getCatalogValues", args));
+ try {
+ productTypeVector = (Vector<Map<String, Object>>) client
+ .execute("filemgr.getProductTypes", argList);
+ } catch (XmlRpcException e) {
+ throw new RepositoryManagerException(e);
+ } catch (IOException e) {
+ throw new RepositoryManagerException(e);
+ }
- return m;
+ if (productTypeVector == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory
+ .getProductTypeListFromXmlRpc(productTypeVector);
}
+ }
- @SuppressWarnings("unchecked")
- public Metadata getOrigValues(Metadata metadata, ProductType productType)
- throws XmlRpcException, IOException {
- Vector<Object> args = new Vector<Object>();
- args.add(metadata.getHashTable());
- args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
+ @SuppressWarnings("unchecked")
+ public List<Reference> getProductReferences(Product product)
+ throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
- Metadata m = new Metadata();
- m.addMetadata((Map<String, Object>) this.client.execute(
- "filemgr.getOrigValues", args));
+ Vector<Map<String, Object>> productReferenceVector;
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
- return m;
+ try {
+ productReferenceVector = (Vector<Map<String, Object>>) client
+ .execute("filemgr.getProductReferences", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- @SuppressWarnings("unchecked")
- public Query getCatalogQuery(Query query, ProductType productType)
- throws XmlRpcException, IOException {
- Vector<Object> args = new Vector<Object>();
- args.add(XmlRpcStructFactory.getXmlRpcQuery(query));
- args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
- return XmlRpcStructFactory
- .getQueryFromXmlRpc((Hashtable<String, Object>) this.client
- .execute("filemgr.getCatalogQuery", args));
+ if (productReferenceVector == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory
+ .getReferencesFromXmlRpc(productReferenceVector);
}
+ }
+
+ @SuppressWarnings("unchecked")
+ public Product getProductById(String productId) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
- public static void main(String[] args) {
- CmdLineUtility cmdLineUtility = new CmdLineUtility();
- cmdLineUtility.run(args);
+ Map<String, Object> productHash;
+ argList.add(productId);
+
+ try {
+ productHash = (Map<String, Object>) client.execute(
+ "filemgr.getProductById", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- /**
- * @return Returns the fileManagerUrl.
- */
- public URL getFileManagerUrl() {
- return fileManagerUrl;
+ if (productHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getProductFromXmlRpc(productHash);
}
+ }
+
+ @SuppressWarnings("unchecked")
+ public Product getProductByName(String productName) throws CatalogException {
+ Vector<Object> argList = new Vector<Object>();
- /**
- * @param fileManagerUrl
- * The fileManagerUrl to set.
- */
- public void setFileManagerUrl(URL fileManagerUrl) {
- this.fileManagerUrl = fileManagerUrl;
+ Map<String, Object> productHash;
+ argList.add(productName);
- // reset the client
- this.client = new XmlRpcClient(fileManagerUrl);
+ try {
+ productHash = (Map<String, Object>) client.execute(
+ "filemgr.getProductByName", argList);
+ } catch (XmlRpcException e) {
+ throw new CatalogException(e);
+ } catch (IOException e) {
+ throw new CatalogException(e);
}
- /**
- * @return Returns the dataTransfer.
- */
- public DataTransfer getDataTransfer() {
- return dataTransfer;
+ if (productHash == null) {
+ return null;
+ } else {
+ return XmlRpcStructFactory.getProductFromXmlRpc(productHash);
}
+ }
- /**
- * @param dataTransfer
- * The dataTransfer to set.
- */
- public void setDataTransfer(DataTransfer dataTransfer) {
- this.dataTransfer = dataTransfer;
- this.dataTransfer.setFileManagerUrl(this.fileManagerUrl);
+ public String ingestProduct(Product product, Metadata metadata,
+ boolean clientTransfer)
+ throws VersioningException, XmlRpcException, FileManagerException {
+ try {
+ // ingest product
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+ argList.add(metadata.getHashTable());
+ argList.add(clientTransfer);
+ String productId = (String) client.execute("filemgr.ingestProduct",
+ argList);
+
+ if (clientTransfer) {
+ LOG.log(Level.FINEST,
+ "File Manager Client: clientTransfer enabled: "
+ + "transfering product ["
+ + product.getProductName() + "]");
+
+ // we need to transfer the product ourselves
+ // make sure we have the product ID
+ if (productId == null) {
+ throw new Exception("Request to ingest product: "
+ + product.getProductName()
+ + " but no product ID returned from File "
+ + "Manager ingest");
+ }
+
+ if (dataTransfer == null) {
+ throw new Exception("Request to ingest product: ["
+ + product.getProductName()
+ + "] using client transfer, but no "
+ + "dataTransferer specified!");
+ }
+
+ product.setProductId(productId);
+
+ if (!Boolean.getBoolean("org.apache.oodt.cas.filemgr.serverside.versioning")) {
+ // version the product
+ Versioner versioner = GenericFileManagerObjectFactory
+ .getVersionerFromClassName(product.getProductType()
+ .getVersioner());
+ if (versioner != null) {
+ versioner.createDataStoreReferences(product, metadata);
+ }
+
+ // add the newly versioned references to the data store
+ try {
+ addProductReferences(product);
+ } catch (CatalogException e) {
+ LOG
+ .log(
+ Level.SEVERE,
+ "ingestProduct: RepositoryManagerException "
+ + "when adding Product References for Product : "
+ + product.getProductName()
+ + " to RepositoryManager: Message: "
+ + e);
+ throw e;
+ }
+ } else {
+ product.setProductReferences(getProductReferences(product));
+ }
+
+ // now transfer the product
+ try {
+ dataTransfer.transferProduct(product);
+ // now update the product's transfer status in the data
+ // store
+ product.setTransferStatus(Product.STATUS_RECEIVED);
+
+ try {
+ setProductTransferStatus(product);
+ } catch (CatalogException e) {
+ LOG
+ .log(
+ Level.SEVERE,
+ "ingestProduct: RepositoryManagerException "
+ + "when updating product transfer status for Product: "
+ + product.getProductName()
+ + " Message: " + e);
+ throw e;
+ }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE,
+ "ingestProduct: DataTransferException when transfering Product: "
+ + product.getProductName() + ": Message: "
+ + e);
+ throw new DataTransferException(e);
+ }
+
+ }
+ return productId;
+
+ // error versioning file
+ } catch (VersioningException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "ingestProduct: VersioningException when versioning Product: "
+ + product.getProductName() + " with Versioner "
+ + product.getProductType().getVersioner()
+ + ": Message: " + e);
+ throw new VersioningException(e);
+ } catch (XmlRpcException e2) {
+ LOG.log(Level.SEVERE, "Failed to ingest product [ name:" + product.getProductName() + "] :" + e2.getMessage()
+ + " -- rolling back ingest");
+ try {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+ client.execute("filemgr.removeProduct", argList);
+ } catch (Exception e1) {
+ LOG.log(Level.SEVERE, "Failed to rollback ingest of product ["
+ + product + "] : " + e2.getMessage());
+ }
+ throw e2;
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, "Failed to ingest product [ id: " + product.getProductId() +
+ "/ name:" + product.getProductName() + "] :" + e + " -- rolling back ingest");
+ try {
+ Vector<Object> argList = new Vector<Object>();
+ Map<String, Object> productHash = XmlRpcStructFactory
+ .getXmlRpcProduct(product);
+ argList.add(productHash);
+ client.execute("filemgr.removeProduct", argList);
+ } catch (Exception e1) {
+ LOG.log(Level.SEVERE, "Failed to rollback ingest of product ["
+ + product + "] : " + e);
+ }
+ throw new FileManagerException("Failed to ingest product [" + product + "] : "
+ + e);
}
+ }
+
+ @SuppressWarnings("unchecked")
+ public Metadata getCatalogValues(Metadata metadata, ProductType productType)
+ throws XmlRpcException, IOException {
+ Vector<Object> args = new Vector<Object>();
+ args.add(metadata.getHashTable());
+ args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
+
+ Metadata m = new Metadata();
+ m.addMetadata((Map<String, Object>) this.client.execute(
+ "filemgr.getCatalogValues", args));
+
+ return m;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Metadata getOrigValues(Metadata metadata, ProductType productType)
+ throws XmlRpcException, IOException {
+ Vector<Object> args = new Vector<Object>();
+ args.add(metadata.getHashTable());
+ args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
+
+ Metadata m = new Metadata();
+ m.addMetadata((Map<String, Object>) this.client.execute(
+ "filemgr.getOrigValues", args));
+
+ return m;
+ }
+
+ @SuppressWarnings("unchecked")
+ public Query getCatalogQuery(Query query, ProductType productType)
+ throws XmlRpcException, IOException {
+ Vector<Object> args = new Vector<Object>();
+ args.add(XmlRpcStructFactory.getXmlRpcQuery(query));
+ args.add(XmlRpcStructFactory.getXmlRpcProductType(productType));
+ return XmlRpcStructFactory
+ .getQueryFromXmlRpc((Hashtable<String, Object>) this.client
+ .execute("filemgr.getCatalogQuery", args));
+ }
+
+ public static void main(String[] args) {
+ CmdLineUtility cmdLineUtility = new CmdLineUtility();
+ cmdLineUtility.run(args);
+ }
+
+ /**
+ * @return Returns the fileManagerUrl.
+ */
+ public URL getFileManagerUrl() {
+ return fileManagerUrl;
+ }
+
+ /**
+ * @param fileManagerUrl The fileManagerUrl to set.
+ */
+ public void setFileManagerUrl(URL fileManagerUrl) {
+ this.fileManagerUrl = fileManagerUrl;
+
+ // reset the client
+ this.client = new XmlRpcClient(fileManagerUrl);
+ }
+
+ /**
+ * @return Returns the dataTransfer.
+ */
+ public DataTransfer getDataTransfer() {
+ return dataTransfer;
+ }
+
+ /**
+ * @param dataTransfer The dataTransfer to set.
+ */
+ public void setDataTransfer(DataTransfer dataTransfer) {
+ this.dataTransfer = dataTransfer;
+ this.dataTransfer.setFileManagerUrl(this.fileManagerUrl);
+ }
+
}
[2/6] oodt git commit: OODT-917 alter XMLRPC interface to support
more generic map types where suitable
Posted by ma...@apache.org.
OODT-917 alter XMLRPC interface to support more generic map types where suitable
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/3e0e5972
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/3e0e5972
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/3e0e5972
Branch: refs/heads/master
Commit: 3e0e5972a6f6466add63d4edd204264eb3f50499
Parents: aa5e31a
Author: Tom Barber <to...@analytical-labs.com>
Authored: Wed Nov 4 12:09:13 2015 +0000
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Wed Nov 4 12:09:13 2015 +0000
----------------------------------------------------------------------
.../cas/filemgr/system/XmlRpcFileManager.java | 573 ++++++-------------
.../filemgr/system/XmlRpcFileManagerClient.java | 42 +-
.../cas/filemgr/util/XmlRpcStructFactory.java | 261 +++------
.../org/apache/oodt/cas/metadata/Metadata.java | 16 +-
4 files changed, 275 insertions(+), 617 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oodt/blob/3e0e5972/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
index 4be4dc1..e5ad57b 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
@@ -56,6 +56,7 @@ import org.apache.xmlrpc.WebServer;
import com.google.common.collect.Lists;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -162,13 +163,17 @@ public class XmlRpcFileManager {
return status;
}
- public boolean transferringProduct(Map<String, Object> productHash) {
+ public boolean transferringProduct(Hashtable<String, Object> productHash) {
+ return this.transferringProductCore(productHash);
+ }
+
+ public boolean transferringProductCore(Map<String, Object> productHash) {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
transferStatusTracker.transferringProduct(p);
return true;
}
- public Map<String, Object> getCurrentFileTransfer() {
+ public Map<String, Object> getCurrentFileTransferCore() {
FileTransferStatus status = transferStatusTracker
.getCurrentFileTransfer();
if (status == null) {
@@ -189,12 +194,18 @@ public class XmlRpcFileManager {
}
}
- public double getProductPctTransferred(Map<String, Object> productHash) {
+ public double getProductPctTransferred(Hashtable<String, Object> productHash) {
+ return this.getProductPctTransferredCore(productHash);
+ }
+ public double getProductPctTransferredCore(Map<String, Object> productHash) {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return transferStatusTracker.getPctTransferred(product);
}
- public double getRefPctTransferred(Map<String, Object> refHash) {
+ public double getRefPctTransferred(Hashtable<String, Object> refHash) {
+ return getRefPctTransferredCore(refHash);
+ }
+ public double getRefPctTransferredCore(Map<String, Object> refHash) {
Reference reference = XmlRpcStructFactory
.getReferenceFromXmlRpc(refHash);
double pct = 0.0;
@@ -211,18 +222,29 @@ public class XmlRpcFileManager {
return pct;
}
- public boolean removeProductTransferStatus(Map<String, Object> productHash) {
+ public boolean removeProductTransferStatus(Hashtable<String, Object> productHash) {
+ return removeProductTransferStatusCore(productHash);
+ }
+ public boolean removeProductTransferStatusCore(Map<String, Object> productHash) {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
transferStatusTracker.removeProductTransferStatus(product);
return true;
}
-
- public boolean isTransferComplete(Map<String, Object> productHash) {
+ public boolean isTransferComplete(Hashtable<String, Object> productHash) {
+ return this.isTransferCompleteCore(productHash);
+ }
+ public boolean isTransferCompleteCore(Map<String, Object> productHash) {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return transferStatusTracker.isTransferComplete(product);
}
+ public Map<String, Object> pagedQuery(
+ Hashtable<String, Object> queryHash,
+ Hashtable<String, Object> productTypeHash,
+ int pageNum) throws CatalogException {
+ return this.pagedQueryCore(queryHash,productTypeHash,pageNum);
+ }
- public Map<String, Object> pagedQuery(
+ public Map<String, Object> pagedQueryCore(
Map<String, Object> queryHash,
Map<String, Object> productTypeHash,
int pageNum) throws CatalogException {
@@ -256,23 +278,13 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductPage(prodPage);
}
- public Map<String, Object> getFirstPage(
- Map<String, Object> productTypeHash) {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- ProductPage page = catalog.getFirstPage(type);
- try {
- setProductType(page.getPageProducts());
- } catch (Exception e) {
- LOG.log(Level.WARNING,
- "Unable to set product types for product page list: ["
- + page + "]");
- }
- return XmlRpcStructFactory.getXmlRpcProductPage(page);
- }
+ public Map<String, Object> getFirstPage(
+ Hashtable<String, Object> productTypeHash){
+ return this.getFirstPageCore(productTypeHash);
+ }
- public Hashtable<String, Object> getFirstPage(
- Hashtable<String, Object> productTypeHash) {
+ public Map<String, Object> getFirstPageCore(
+ Map<String, Object> productTypeHash) {
ProductType type = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
ProductPage page = catalog.getFirstPage(type);
@@ -286,7 +298,12 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductPage(page);
}
- public Map<String, Object> getLastPage(
+
+ public Map<String, Object> getLastPage(
+ Hashtable<String, Object> productTypeHash){
+ return this.getLastPageCore(productTypeHash);
+ }
+ public Map<String, Object> getLastPageCore(
Map<String, Object> productTypeHash) {
ProductType type = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
@@ -301,7 +318,12 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductPage(page);
}
- public Map<String, Object> getNextPage(
+ public Map<String, Object> getNextPage(
+ Hashtable<String, Object> productTypeHash,
+ Hashtable<String, Object> currentPageHash){
+ return this.getNextPageCore(productTypeHash, currentPageHash);
+ }
+ public Map<String, Object> getNextPageCore(
Map<String, Object> productTypeHash,
Map<String, Object> currentPageHash) {
ProductType type = XmlRpcStructFactory
@@ -318,8 +340,12 @@ public class XmlRpcFileManager {
}
return XmlRpcStructFactory.getXmlRpcProductPage(page);
}
-
- public Map<String, Object> getPrevPage(
+ public Map<String, Object> getPrevPage(
+ Hashtable<String, Object> productTypeHash,
+ Hashtable<String, Object> currentPageHash){
+ return this.getPrevPageCore(productTypeHash, currentPageHash);
+ }
+ public Map<String, Object> getPrevPageCore(
Map<String, Object> productTypeHash,
Map<String, Object> currentPageHash) {
ProductType type = XmlRpcStructFactory
@@ -337,7 +363,12 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductPage(page);
}
- public String addProductType(Map<String, Object> productTypeHash)
+ public String addProductType(Hashtable<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ return this.addProductTypeCore(productTypeHash);
+ }
+
+ public String addProductTypeCore(Map<String, Object> productTypeHash)
throws RepositoryManagerException {
ProductType productType = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
@@ -346,44 +377,26 @@ public class XmlRpcFileManager {
}
- public synchronized boolean setProductTransferStatus(
- Map<String, Object> productHash)
- throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- catalog.setProductTransferStatus(product);
- return true;
- }
-
public synchronized boolean setProductTransferStatus(
Hashtable<String, Object> productHash)
throws CatalogException {
+ return this.setProductTransferStatusCore(productHash);
+ }
+
+ public synchronized boolean setProductTransferStatusCore(
+ Map<String, Object> productHash)
+ throws CatalogException {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
catalog.setProductTransferStatus(product);
return true;
}
- public int getNumProducts(Map<String, Object> productTypeHash)
- throws CatalogException {
- int numProducts;
-
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
-
- try {
- numProducts = catalog.getNumProducts(type);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Exception when getting num products: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
-
- return numProducts;
- }
-
public int getNumProducts(Hashtable<String, Object> productTypeHash)
throws CatalogException {
+ return this.getNumProductsCore(productTypeHash);
+ }
+ public int getNumProductsCore(Map<String, Object> productTypeHash)
+ throws CatalogException {
int numProducts;
ProductType type = XmlRpcStructFactory
@@ -418,7 +431,7 @@ public class XmlRpcFileManager {
}
}
- public List<Hashtable<String, Object>> getTopNProducts(int n)
+ public List<Map<String, Object>> getTopNProducts(int n)
throws CatalogException {
List<Product> topNProducts;
@@ -434,27 +447,12 @@ public class XmlRpcFileManager {
}
}
- public List<Hashtable<String, Object>> getTopNProducts(int n,
+ public List<Map<String, Object>> getTopNProducts(int n,
Hashtable<String, Object> productTypeHash)
throws CatalogException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- List<Product> topNProducts;
-
- try {
- topNProducts = catalog.getTopNProducts(n, type);
- return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Exception when getting topN products by product type: ["
- + type.getProductTypeId() + "]: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
-
+ return this.getTopNProductsCore(n, productTypeHash);
}
- public List<Map<String, Object>> getTopNProducts(int n,
+ public List<Map<String, Object>> getTopNProductsCore(int n,
Map<String, Object> productTypeHash)
throws CatalogException {
ProductType type = XmlRpcStructFactory
@@ -481,31 +479,29 @@ public class XmlRpcFileManager {
&& p.getTransferStatus().equals(Product.STATUS_RECEIVED);
}
- public Map<String, Object> getMetadata(
+
+ public Map<String, Object> getMetadata(
+ Hashtable<String, Object> productHash) throws CatalogException {
+ return this.getMetadataCore(productHash);
+ }
+ public Map<String, Object> getMetadataCore(
Map<String, Object> productHash) throws CatalogException {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getMetadata(product).getMap();
+ return this.getMetadata(product).getHashTable();
}
- public Hashtable<String, Object> getMetadata(
- Hashtable<String, Object> productHash) throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getMetadata(product).getHashTable();
+ public Map<String, Object> getReducedMetadata(
+ Hashtable<String, Object> productHash, Vector<String> elements)
+ throws CatalogException {
+ return this.getReducedMetadataCore(productHash, elements);
}
-
- public Map<String, Object> getReducedMetadata(
+ public Map<String, Object> getReducedMetadataCore(
Map<String, Object> productHash, Vector<String> elements)
throws CatalogException {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getReducedMetadata(product, elements).getMap();
+ return this.getReducedMetadata(product, elements).getHashTable();
}
- public Hashtable<String, Object> getReducedMetadata(
- Hashtable<String, Object> productHash, Vector<String> elements)
- throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getReducedMetadata(product, elements).getHashTable();
- }
public List<Map<String, Object>> getProductTypes()
throws RepositoryManagerException {
List<ProductType> productTypeList;
@@ -523,28 +519,15 @@ public class XmlRpcFileManager {
}
}
- public List<Map<String, Object>> getProductReferences(
- Map<String, Object> productHash)
- throws CatalogException {
- List<Reference> referenceList;
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
-
- try {
- referenceList = catalog.getProductReferences(product);
- return XmlRpcStructFactory.getXmlRpcReferencesMap(referenceList);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "Unable to obtain references for product: ["
- + product.getProductName() + "]: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
-
- }
-
- public List<Hashtable<String, Object>> getProductReferences(
+ public List<Map<String, Object>> getProductReferences(
Hashtable<String, Object> productHash)
throws CatalogException {
+ return this.getProductReferencesCore(productHash);
+ }
+
+ public List<Map<String, Object>> getProductReferencesCore(
+ Map<String, Object> productHash)
+ throws CatalogException {
List<Reference> referenceList;
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
@@ -617,7 +600,12 @@ public class XmlRpcFileManager {
}
}
- public List<Map<String, Object>> getProductsByProductType(
+ public List<Map<String, Object>> getProductsByProductType(
+ Hashtable<String, Object> productTypeHash)
+ throws CatalogException {
+ return this.getProductsByProductTypeCore(productTypeHash);
+ }
+ public List<Map<String, Object>> getProductsByProductTypeCore(
Map<String, Object> productTypeHash)
throws CatalogException {
ProductType type = XmlRpcStructFactory
@@ -636,24 +624,6 @@ public class XmlRpcFileManager {
}
}
- public List<Hashtable<String, Object>> getProductsByProductType(
- Hashtable<String, Object> productTypeHash)
- throws CatalogException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- List<Product> productList;
-
- try {
- productList = catalog.getProductsByProductType(type);
- return XmlRpcStructFactory.getXmlRpcProductList(productList);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining products by product type for type: ["
- + type.getName() + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
- }
public List<Map<String, Object>> getElementsByProductType(
Map<String, Object> productTypeHash)
throws ValidationLayerException {
@@ -706,7 +676,11 @@ public class XmlRpcFileManager {
}
}
- public List<Map<String, Object>> complexQueryMap(
+ public List<Map<String,Object>> complexQuery(Hashtable<String, Object> complexQueryHash) throws CatalogException{
+ return this.complexQueryCore(complexQueryHash);
+ }
+
+ public List<Map<String, Object>> complexQueryCore(
Map<String, Object> complexQueryHash) throws CatalogException {
try {
ComplexQuery complexQuery = XmlRpcStructFactory
@@ -766,81 +740,17 @@ public class XmlRpcFileManager {
+ e.getMessage(), e);
}
}
-
- public List<Hashtable<String, Object>> complexQuery(
- Hashtable<String, Object> complexQueryHash) throws CatalogException {
- try {
- ComplexQuery complexQuery = XmlRpcStructFactory
- .getComplexQueryFromXmlRpc(complexQueryHash);
-
- // get ProductTypes
- List<ProductType> productTypes;
- if (complexQuery.getReducedProductTypeNames() == null) {
- productTypes = this.repositoryManager.getProductTypes();
- } else {
- productTypes = new Vector<ProductType>();
- for (String productTypeName : complexQuery
- .getReducedProductTypeNames()) {
- productTypes.add(this.repositoryManager
- .getProductTypeByName(productTypeName));
- }
- }
-
- // get Metadata
- List<QueryResult> queryResults = new LinkedList<QueryResult>();
- for (ProductType productType : productTypes) {
- List<String> productIds = catalog.query(this.getCatalogQuery(
- complexQuery, productType), productType);
- for (String productId : productIds) {
- Product product = catalog.getProductById(productId);
- product.setProductType(productType);
- QueryResult qr = new QueryResult(product, this
- .getReducedMetadata(product, complexQuery
- .getReducedMetadata()));
- qr.setToStringFormat(complexQuery
- .getToStringResultFormat());
- queryResults.add(qr);
- }
- }
-
- LOG.log(Level.INFO, "Query returned " + queryResults.size()
- + " results");
-
- // filter query results
- if (complexQuery.getQueryFilter() != null) {
- queryResults = applyFilterToResults(queryResults, complexQuery
- .getQueryFilter());
- LOG.log(Level.INFO, "Filter returned " + queryResults.size()
- + " results");
- }
-
- // sort query results
- if (complexQuery.getSortByMetKey() != null) {
- queryResults = sortQueryResultList(queryResults, complexQuery
- .getSortByMetKey());
- }
-
- return XmlRpcStructFactory.getXmlRpcQueryResults(queryResults);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException("Failed to perform complex query : "
- + e.getMessage(), e);
- }
- }
- public List<Map<String, Object>> query(
- Map<String, Object> queryHash,
- Map<String, Object> productTypeHash)
- throws CatalogException {
- Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- return XmlRpcStructFactory.getXmlRpcProductListMap(this.query(query, type));
- }
-
- public List<Hashtable<String, Object>> query(
+ public List<Map<String, Object>> query(
Hashtable<String, Object> queryHash,
Hashtable<String, Object> productTypeHash)
throws CatalogException {
+ return this.queryCore(queryHash, productTypeHash);
+ }
+
+ public List<Map<String, Object>> queryCore(
+ Map<String, Object> queryHash,
+ Map<String, Object> productTypeHash)
+ throws CatalogException {
Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
ProductType type = XmlRpcStructFactory
.getProductTypeFromXmlRpc(productTypeHash);
@@ -854,7 +764,7 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductType(type);
}
- public Hashtable<String, Object> getProductTypeByName(String productTypeName)
+ public Map<String, Object> getProductTypeByName(String productTypeName)
throws RepositoryManagerException {
ProductType type = repositoryManager
.getProductTypeByName(productTypeName);
@@ -876,8 +786,13 @@ public class XmlRpcFileManager {
throw new RepositoryManagerException(e.getMessage(), e);
}
}
-
- public synchronized boolean updateMetadata(Map<String, Object> productHash,
+ public synchronized boolean updateMetadata(Hashtable<String, Object> productHash,
+ Hashtable<String, Object> metadataHash) throws CatalogException{
+
+ return this.updateMetadataCore(productHash, metadataHash);
+ }
+
+ public synchronized boolean updateMetadataCore(Map<String, Object> productHash,
Map<String, Object> metadataHash) throws CatalogException{
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
Metadata met = new Metadata();
@@ -888,28 +803,22 @@ public class XmlRpcFileManager {
return true;
}
- public synchronized boolean updateMetadata(Hashtable<String, Object> productHash,
- Hashtable<String, Object> metadataHash) throws CatalogException{
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- Metadata met = new Metadata();
- met.addMetadata(metadataHash);
- Metadata oldMetadata = catalog.getMetadata(product);
- catalog.removeMetadata(oldMetadata, product);
- catalog.addMetadata(met, product);
- return true;
+ public synchronized String catalogProduct(Hashtable<String, Object> productHash)
+ throws CatalogException {
+ return this.catalogProductCore(productHash);
+
}
- public synchronized String catalogProduct(Map<String, Object> productHash)
+ public synchronized String catalogProductCore(Map<String, Object> productHash)
throws CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return catalogProduct(p);
}
- public synchronized String catalogProduct(Hashtable<String, Object> productHash)
- throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return catalogProduct(p);
+ public synchronized boolean addMetadata(Hashtable<String, Object> productHash,
+ Hashtable<String, String> metadata) throws CatalogException {
+ return this.addMetadataCore(productHash, metadata);
}
- public synchronized boolean addMetadata(Map<String, Object> productHash,
+ public synchronized boolean addMetadataCore(Map<String, Object> productHash,
Map<String, String> metadata) throws CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
Metadata m = new Metadata();
@@ -917,14 +826,7 @@ public class XmlRpcFileManager {
return addMetadata(p, m) != null;
}
- public synchronized boolean addMetadata(Hashtable<String, Object> productHash,
- Hashtable<String, String> metadata) throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- Metadata m = new Metadata();
- m.addMetadata((Map)metadata);
- return addMetadata(p, m) != null;
- }
- public synchronized boolean addProductReferences(Map<String, Object> productHash)
+ public synchronized boolean addProductReferencesCore(Map<String, Object> productHash)
throws CatalogException {
Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
return addProductReferences(product);
@@ -932,12 +834,16 @@ public class XmlRpcFileManager {
public synchronized boolean addProductReferences(Hashtable<String, Object> productHash)
throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return addProductReferences(product);
+ return this.addProductReferencesCore(productHash);
+ }
+
+ public String ingestProduct(Hashtable<String, Object> ph, Hashtable<String, String> m, boolean ct)
+ throws CatalogException {
+ return this.ingestProductCore(ph, m, ct);
}
- public String ingestProduct(Map<String, Object> productHash,
+ public String ingestProductCore(Map<String, Object> productHash,
Map<String, String> metadata, boolean clientTransfer)
throws
CatalogException {
@@ -1012,83 +918,7 @@ public class XmlRpcFileManager {
}
}
-
- public String ingestProduct(Hashtable<String, Object> productHash,
- Hashtable<String, String> metadata, boolean clientTransfer)
- throws
- CatalogException {
-
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
-
- try {
- // first, create the product
- p.setTransferStatus(Product.STATUS_TRANSFER);
- catalogProduct(p);
-
- // now add the metadata
- Metadata m = new Metadata();
- m.addMetadata((Map)metadata);
- Metadata expandedMetdata = addMetadata(p, m);
-
- // version the product
- if (!clientTransfer || (Boolean.getBoolean("org.apache.oodt.cas.filemgr.serverside.versioning"))) {
- Versioner versioner;
- try {
- versioner = GenericFileManagerObjectFactory
- .getVersionerFromClassName(p.getProductType().getVersioner());
- if (versioner != null) {
- versioner.createDataStoreReferences(p, expandedMetdata);
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE,
- "ingestProduct: VersioningException when versioning Product: "
- + p.getProductName() + " with Versioner "
- + p.getProductType().getVersioner() + ": Message: "
- + e.getMessage());
- throw new VersioningException(e);
- }
-
- // add the newly versioned references to the data store
- addProductReferences(p);
- }
-
- if (!clientTransfer) {
- LOG.log(Level.FINEST,
- "File Manager: ingest: no client transfer enabled, "
- + "server transfering product: [" + p.getProductName() + "]");
-
- // now transfer the product
- try {
- dataTransfer.transferProduct(p);
- // now update the product's transfer status in the data store
- p.setTransferStatus(Product.STATUS_RECEIVED);
-
- try {
- catalog.setProductTransferStatus(p);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE, "ingestProduct: CatalogException "
- + "when updating product transfer status for Product: "
- + p.getProductName() + " Message: " + e.getMessage());
- throw e;
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE,
- "ingestProduct: DataTransferException when transfering Product: "
- + p.getProductName() + ": Message: " + e.getMessage());
- throw new DataTransferException(e);
- }
- }
-
- // that's it!
- return p.getProductId();
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException("Error ingesting product [" + p + "] : "
- + e.getMessage(),e);
- }
-
- }
- public byte[] retrieveFile(String filePath, int offset, int numBytes)
+ public byte[] retrieveFile(String filePath, int offset, int numBytes)
throws DataTransferException {
FileInputStream is = null;
try {
@@ -1174,7 +1004,12 @@ public class XmlRpcFileManager {
return success;
}
- public boolean moveProduct(Map<String, Object> productHash, String newPath)
+ public boolean moveProduct(Hashtable<String, Object> productHash, String newPath)
+ throws DataTransferException {
+
+ return this.moveProductCore(productHash, newPath);
+ }
+ public boolean moveProductCore(Map<String, Object> productHash, String newPath)
throws DataTransferException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
@@ -1242,73 +1077,6 @@ public class XmlRpcFileManager {
}
}
- public boolean moveProduct(Hashtable<String, Object> productHash, String newPath)
- throws DataTransferException {
-
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
-
- // first thing we care about is if the product is flat or heirarchical
- if (p.getProductStructure().equals(Product.STRUCTURE_FLAT)) {
- // we just need to get its first reference
- if (p.getProductReferences() == null || (p.getProductReferences().size() != 1)) {
- throw new DataTransferException(
- "Flat products must have a single reference: cannot move");
- }
-
- // okay, it's fine to move it
- // first, we need to update the data store ref
- Reference r = p.getProductReferences().get(0);
- if (r.getDataStoreReference().equals(
- new File(newPath).toURI().toString())) {
- throw new DataTransferException("cannot move product: ["
- + p.getProductName() + "] to same location: ["
- + r.getDataStoreReference() + "]");
- }
-
- // create a copy of the current data store path: we'll need it to
- // do the data transfer
- Reference copyRef = new Reference(r);
-
- // update the copyRef to have the data store ref as the orig ref
- // the the newLoc as the new ref
- copyRef.setOrigReference(r.getDataStoreReference());
- copyRef.setDataStoreReference(new File(newPath).toURI().toString());
-
- p.getProductReferences().clear();
- p.getProductReferences().add(copyRef);
-
- // now transfer it
- try {
- this.dataTransfer.transferProduct(p);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
-
- // now delete the original copy
- try {
- if (!new File(new URI(copyRef.getOrigReference())).delete()) {
- LOG.log(Level.WARNING, "Deletion of original file: ["
- + r.getDataStoreReference()
- + "] on product move returned false");
- }
- } catch (URISyntaxException e) {
- throw new DataTransferException(
- "URI Syntax exception trying to remove original product ref: Message: "
- + e.getMessage(), e);
- }
-
- // now save the updated reference
- try {
- this.catalog.modifyProduct(p);
- return true;
- } catch (CatalogException e) {
- throw new DataTransferException(e.getMessage(),e);
- }
- } else {
- throw new UnsupportedOperationException(
- "Moving of heirarhical and stream products not supported yet");
- }
- }
public boolean removeFile(String filePath) throws DataTransferException, IOException {
// TODO(bfoster): Clean this up so that it deletes by product not file.
Product product = new Product();
@@ -1319,7 +1087,10 @@ public class XmlRpcFileManager {
return true;
}
- public boolean modifyProduct(Map<?, ?> productHash) throws CatalogException {
+ public boolean modifyProduct(Hashtable<?, ?> productHash) throws CatalogException {
+ return this.modifyProductCore(productHash);
+ }
+ public boolean modifyProductCore(Map<?, ?> productHash) throws CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
try {
@@ -1346,48 +1117,46 @@ public class XmlRpcFileManager {
return true;
}
-
- public Map<String, Object> getCatalogValues(
+ public Map<String, Object> getCatalogValues(
+ Hashtable<String, Object> metadataHash,
+ Hashtable<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ return this.getCatalogValuesCore(metadataHash, productTypeHash);
+ }
+ public Map<String, Object> getCatalogValuesCore(
Map<String, Object> metadataHash,
Map<String, Object> productTypeHash)
throws RepositoryManagerException {
Metadata m = new Metadata();
m.addMetadata(metadataHash);
ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getCatalogValues(m, productType).getMap();
+ return this.getCatalogValues(m, productType).getHashTable();
}
- public Hashtable<String, Object> getCatalogValues(
+ public Map<String, Object> getOrigValues(
Hashtable<String, Object> metadataHash,
Hashtable<String, Object> productTypeHash)
throws RepositoryManagerException {
- Metadata m = new Metadata();
- m.addMetadata(metadataHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getCatalogValues(m, productType).getHashTable();
+ return this.getOrigValuesCore(metadataHash, productTypeHash);
}
- public Map<String, Object> getOrigValues(
+ public Map<String, Object> getOrigValuesCore(
Map<String, Object> metadataHash,
Map<String, Object> productTypeHash)
throws RepositoryManagerException {
Metadata m = new Metadata();
m.addMetadata(metadataHash);
ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getOrigValues(m, productType).getMap();
+ return this.getOrigValues(m, productType).getHashTable();
}
- public Hashtable<String, Object> getOrigValues(
- Hashtable<String, Object> metadataHash,
+ public Map<String, Object> getCatalogQuery(
+ Hashtable<String, Object> queryHash,
Hashtable<String, Object> productTypeHash)
- throws RepositoryManagerException {
- Metadata m = new Metadata();
- m.addMetadata(metadataHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getOrigValues(m, productType).getHashTable();
+ throws RepositoryManagerException, QueryFormulationException {
+ return this.getCatalogQueryCore(queryHash, productTypeHash);
}
-
- public Map<String, Object> getCatalogQuery(
+ public Map<String, Object> getCatalogQueryCore(
Map<String, Object> queryHash,
Map<String, Object> productTypeHash)
throws RepositoryManagerException, QueryFormulationException {
@@ -1396,14 +1165,6 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
}
- public Hashtable<String, Object> getCatalogQuery(
- Hashtable<String, Object> queryHash,
- Hashtable<String, Object> productTypeHash)
- throws RepositoryManagerException, QueryFormulationException {
- Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
- }
public static void main(String[] args) throws IOException {
int portNum = -1;
@@ -1508,7 +1269,7 @@ public class XmlRpcFileManager {
}
Metadata met = new Metadata();
- met.addMetadata(metadata.getMap());
+ met.addMetadata(metadata.getHashTable());
if (product.getProductType().getExtractors() != null) {
for (ExtractorSpec spec: product.getProductType().getExtractors()) {
http://git-wip-us.apache.org/repos/asf/oodt/blob/3e0e5972/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
index 5c471d9..cb80e08 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManagerClient.java
@@ -223,7 +223,7 @@ public class XmlRpcFileManagerClient {
public boolean transferringProduct(Product product)
throws DataTransferException {
Vector<Object> argList = new Vector<Object>();
- Hashtable<String, Object> productHash = XmlRpcStructFactory
+ Map<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
@@ -636,10 +636,10 @@ public class XmlRpcFileManagerClient {
Vector<Object> argList = new Vector<Object>();
argList.add(n);
- Vector<Hashtable<String, Object>> topNProducts;
+ Vector<Map<String, Object>> topNProducts;
try {
- topNProducts = (Vector<Hashtable<String, Object>>) client.execute(
+ topNProducts = (Vector<Map<String, Object>>) client.execute(
"filemgr.getTopNProducts", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -660,10 +660,10 @@ public class XmlRpcFileManagerClient {
.getXmlRpcProductType(type);
argList.add(productTypeHash);
- Vector<Hashtable<String, Object>> topNProducts;
+ Vector<Map<String, Object>> topNProducts;
try {
- topNProducts = (Vector<Hashtable<String, Object>>) client.execute(
+ topNProducts = (Vector<Map<String, Object>>) client.execute(
"filemgr.getTopNProducts", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -869,10 +869,10 @@ public class XmlRpcFileManagerClient {
.getXmlRpcProductType(type);
argList.add(productTypeHash);
- Vector<Hashtable<String, Object>> productVector;
+ Vector<Map<String, Object>> productVector;
try {
- productVector = (Vector<Hashtable<String, Object>>) client.execute(
+ productVector = (Vector<Map<String, Object>>) client.execute(
"filemgr.getProductsByProductType", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -896,10 +896,10 @@ public class XmlRpcFileManagerClient {
argList.add(productTypeHash);
- Vector<Hashtable<String, Object>> elementVector;
+ Vector<Map<String, Object>> elementVector;
try {
- elementVector = (Vector<Hashtable<String, Object>>) client.execute(
+ elementVector = (Vector<Map<String, Object>>) client.execute(
"filemgr.getElementsByProductType", argList);
} catch (XmlRpcException e) {
throw new ValidationLayerException(e);
@@ -990,12 +990,12 @@ public class XmlRpcFileManagerClient {
public List<QueryResult> complexQuery(ComplexQuery complexQuery)
throws CatalogException {
try {
- Hashtable<String, Object> complexQueryHash = XmlRpcStructFactory
+ Map<String, Object> complexQueryHash = XmlRpcStructFactory
.getXmlRpcComplexQuery(complexQuery);
Vector<Object> argList = new Vector<Object>();
argList.add(complexQueryHash);
@SuppressWarnings("unchecked")
- Vector<Hashtable<String, Object>> queryResultHashVector = (Vector<Hashtable<String, Object>>) client
+ Vector<Map<String, Object>> queryResultHashVector = (Vector<Map<String, Object>>) client
.execute("filemgr.complexQuery", argList);
return XmlRpcStructFactory
.getQueryResultsFromXmlRpc(queryResultHashVector);
@@ -1016,10 +1016,10 @@ public class XmlRpcFileManagerClient {
argList.add(queryHash);
argList.add(typeHash);
- Vector<Hashtable<String, Object>> productVector;
+ Vector<Map<String, Object>> productVector;
try {
- productVector = (Vector<Hashtable<String, Object>>) client.execute(
+ productVector = (Vector<Map<String, Object>>) client.execute(
"filemgr.query", argList);
} catch (XmlRpcException e) {
LOG.log(Level.SEVERE, e.getMessage());
@@ -1114,13 +1114,13 @@ public class XmlRpcFileManagerClient {
throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Vector<Hashtable<String, Object>> productReferenceVector;
- Hashtable<String, Object> productHash = XmlRpcStructFactory
+ Vector<Map<String, Object>> productReferenceVector;
+ Map<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
try {
- productReferenceVector = (Vector<Hashtable<String, Object>>) client
+ productReferenceVector = (Vector<Map<String, Object>>) client
.execute("filemgr.getProductReferences", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1140,11 +1140,11 @@ public class XmlRpcFileManagerClient {
public Product getProductById(String productId) throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Hashtable<String, Object> productHash;
+ Map<String, Object> productHash;
argList.add(productId);
try {
- productHash = (Hashtable<String, Object>) client.execute(
+ productHash = (Map<String, Object>) client.execute(
"filemgr.getProductById", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1163,11 +1163,11 @@ public class XmlRpcFileManagerClient {
public Product getProductByName(String productName) throws CatalogException {
Vector<Object> argList = new Vector<Object>();
- Hashtable<String, Object> productHash;
+ Map<String, Object> productHash;
argList.add(productName);
try {
- productHash = (Hashtable<String, Object>) client.execute(
+ productHash = (Map<String, Object>) client.execute(
"filemgr.getProductByName", argList);
} catch (XmlRpcException e) {
throw new CatalogException(e);
@@ -1187,7 +1187,7 @@ public class XmlRpcFileManagerClient {
try {
// ingest product
Vector<Object> argList = new Vector<Object>();
- Hashtable<String, Object> productHash = XmlRpcStructFactory
+ Map<String, Object> productHash = XmlRpcStructFactory
.getXmlRpcProduct(product);
argList.add(productHash);
argList.add(metadata.getHashTable());
http://git-wip-us.apache.org/repos/asf/oodt/blob/3e0e5972/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
index a7b4964..d10ef2a 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/util/XmlRpcStructFactory.java
@@ -67,7 +67,7 @@ public final class XmlRpcStructFactory {
public static Map<String, Object> getXmlRpcFileTransferStatus(
FileTransferStatus status) {
- Map<String, Object> statusHash = new ConcurrentHashMap<String, Object>();
+ Map<String, Object> statusHash = new Hashtable<String, Object>();
statusHash.put("bytesTransferred",Long.toString(status
.getBytesTransferred()));
statusHash.put("parentProduct", getXmlRpcProduct(status
@@ -113,7 +113,7 @@ public final class XmlRpcStructFactory {
return statuses;
}
- public static Hashtable<String, Object> getXmlRpcProductPage(ProductPage page) {
+ public static Map<String, Object> getXmlRpcProductPage(ProductPage page) {
Hashtable<String, Object>productPageHash = new Hashtable<String, Object>();
productPageHash.put("totalPages", page.getTotalPages());
productPageHash.put("pageNum", page.getPageNum());
@@ -123,16 +123,6 @@ public final class XmlRpcStructFactory {
return productPageHash;
}
- public static Map<String, Object> getXmlRpcProductPageMap(ProductPage page) {
- Map<String, Object>productPageHash = new ConcurrentHashMap<String, Object>();
- productPageHash.put("totalPages", page.getTotalPages());
- productPageHash.put("pageNum", page.getPageNum());
- productPageHash.put("pageSize", page.getPageSize());
- productPageHash.put("pageProducts", getXmlRpcProductList(page
- .getPageProducts()));
- return productPageHash;
- }
-
@SuppressWarnings("unchecked")
public static ProductPage getProductPageFromXmlRpc(Map<String, Object> productPageHash) {
ProductPage page = new ProductPage();
@@ -140,36 +130,12 @@ public final class XmlRpcStructFactory {
page
.setPageSize((Integer) productPageHash.get("pageSize"));
page.setTotalPages((Integer) productPageHash.get("totalPages"));
- page.setPageProducts(getProductListFromXmlRpc((Vector<Hashtable<String, Object>>) productPageHash
+ page.setPageProducts(getProductListFromXmlRpc((Vector<Map<String, Object>>) productPageHash
.get("pageProducts")));
return page;
}
- public static Hashtable<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
- Hashtable<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
- if (complexQuery.getReducedProductTypeNames() != null) {
- complexQueryHash
- .put("reducedProductTypeNames", new Vector<String>(complexQuery.getReducedProductTypeNames()));
- } else {
- complexQueryHash.put("reducedProductTypeNames", new Vector<String>());
- }
- if (complexQuery.getReducedMetadata() != null) {
- complexQueryHash.put("reducedMetadata", new Vector<String>(complexQuery.getReducedMetadata()));
- } else {
- complexQueryHash.put("reducedMetadata", new Vector<String>());
- }
- if (complexQuery.getSortByMetKey() != null) {
- complexQueryHash.put("sortByMetKey", complexQuery.getSortByMetKey());
- }
- if (complexQuery.getToStringResultFormat() != null) {
- complexQueryHash.put("toStringResultFormat", complexQuery.getToStringResultFormat());
- }
- if (complexQuery.getQueryFilter() != null) {
- complexQueryHash.put("queryFilter", getXmlRpcQueryFilter(complexQuery.getQueryFilter()));
- }
- return complexQueryHash;
- }
- public static Map<String, Object> getXmlRpcComplexQueryMap(ComplexQuery complexQuery) {
+ public static Map<String, Object> getXmlRpcComplexQuery(ComplexQuery complexQuery) {
Map<String, Object> complexQueryHash = getXmlRpcQuery(complexQuery);
if (complexQuery.getReducedProductTypeNames() != null) {
complexQueryHash
@@ -193,8 +159,9 @@ public final class XmlRpcStructFactory {
}
return complexQueryHash;
}
+
@SuppressWarnings("unchecked")
- public static ComplexQuery getComplexQueryFromXmlRpc(Hashtable<String, Object> complexQueryHash) {
+ public static ComplexQuery getComplexQueryFromXmlRpc(Map<String, Object> complexQueryHash) {
ComplexQuery complexQuery = new ComplexQuery();
complexQuery.setCriteria(getQueryFromXmlRpc(complexQueryHash).getCriteria());
if (((Vector<String>) complexQueryHash.get("reducedProductTypeNames")).size() > 0) {
@@ -265,8 +232,8 @@ public final class XmlRpcStructFactory {
return filterAlgor;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
- Vector<Hashtable<String, Object>> queryResultHashVector = new Vector<Hashtable<String, Object>>();
+ public static Vector<Map<String, Object>> getXmlRpcQueryResults(List<QueryResult> queryResults) {
+ Vector<Map<String, Object>> queryResultHashVector = new Vector<Map<String, Object>>();
for (QueryResult queryResult : queryResults) {
queryResultHashVector.add(getXmlRpcQueryResult(queryResult));
}
@@ -281,9 +248,9 @@ public final class XmlRpcStructFactory {
return queryResultHashVector;
}
- public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Hashtable<String, Object>> queryResultHashVector) {
+ public static List<QueryResult> getQueryResultsFromXmlRpc(Vector<Map<String, Object>> queryResultHashVector) {
List<QueryResult> queryResults = new Vector<QueryResult>();
- for (Hashtable<String, Object> queryResultHash : queryResultHashVector) {
+ for (Map<String, Object> queryResultHash : queryResultHashVector) {
queryResults.add(getQueryResultFromXmlRpc(queryResultHash));
}
return queryResults;
@@ -297,28 +264,20 @@ public final class XmlRpcStructFactory {
}
return queryResults;
}
- public static Hashtable<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
+ public static Map<String, Object> getXmlRpcQueryResult(QueryResult queryResult) {
Hashtable<String, Object> queryResultHash = new Hashtable<String, Object>();
if (queryResult.getToStringFormat() != null) {
queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
}
queryResultHash.put("product", getXmlRpcProduct(queryResult.getProduct()));
- queryResultHash.put("metadata", queryResult.getMetadata().getMap());
- return queryResultHash;
- }
- public static Map<String, Object> getXmlRpcQueryResultMap(QueryResult queryResult) {
- Map<String, Object> queryResultHash = new ConcurrentHashMap<String, Object>();
- if (queryResult.getToStringFormat() != null) {
- queryResultHash.put("toStringFormat", queryResult.getToStringFormat());
- }
- queryResultHash.put("product", getXmlRpcProduct(queryResult.getProduct()));
- queryResultHash.put("metadata", queryResult.getMetadata().getMap());
+ queryResultHash.put("metadata", queryResult.getMetadata().getHashTable());
return queryResultHash;
}
+
@SuppressWarnings("unchecked")
public static QueryResult getQueryResultFromXmlRpc(Map<String, Object> queryResultHash) {
- Product product = getProductFromXmlRpc((Hashtable<String, Object>) queryResultHash.get("product"));
+ Product product = getProductFromXmlRpc((Map<String, Object>) queryResultHash.get("product"));
Metadata metadata = new Metadata();
metadata.addMetadata((Map<String, Object>) queryResultHash.get("metadata"));
QueryResult queryResult = new QueryResult(product, metadata);
@@ -326,8 +285,8 @@ public final class XmlRpcStructFactory {
return queryResult;
}
- public static Hashtable<String, Object> getXmlRpcProduct(Product product) {
- Hashtable<String, Object> productHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcProduct(Product product) {
+ Map<String, Object> productHash = new Hashtable<String, Object>();
if (product.getProductId() != null) {
productHash.put("id", product.getProductId());
}
@@ -354,57 +313,33 @@ public final class XmlRpcStructFactory {
return productHash;
}
- public static Product getProductFromXmlRpc(Map<?, ?> productHash) {
- /*Hashtable ht = new Hashtable();
- ht.putAll(productHash);*/
- Product product = new Product();
- product.setProductId((String) productHash.get("id"));
- product.setProductName((String) productHash.get("name"));
- if (productHash.get("type") != null) {
- product.setProductType(getProductTypeFromXmlRpc(
- (Hashtable<String, Object>) productHash.get("type")));
- }
- product.setProductStructure((String) productHash.get("structure"));
- product.setTransferStatus((String) productHash.get("transferStatus"));
- if (productHash.get("references") != null) {
- product.setProductReferences(getReferencesFromXmlRpc(
- (Vector<Hashtable<String, Object>>) productHash
- .get("references")));
- }
- if (productHash.get("rootReference") != null) {
- product.setRootRef(getReferenceFromXmlRpc(
- (Hashtable<String, Object>) productHash.get("rootReference")));
- }
- return product;
- }
-
@SuppressWarnings("unchecked")
- public static Product getProductFromXmlRpc(Hashtable<?, ?> productHash) {
+ public static Product getProductFromXmlRpc(Map<?, ?> productHash) {
Product product = new Product();
product.setProductId((String) productHash.get("id"));
product.setProductName((String) productHash.get("name"));
if (productHash.get("type") != null) {
product.setProductType(getProductTypeFromXmlRpc(
- (Hashtable<String, Object>) productHash.get("type")));
+ (Map<String, Object>) productHash.get("type")));
}
product.setProductStructure((String) productHash.get("structure"));
product.setTransferStatus((String) productHash.get("transferStatus"));
if (productHash.get("references") != null) {
product.setProductReferences(getReferencesFromXmlRpc(
- (Vector<Hashtable<String, Object>>) productHash
+ (Vector<Map<String, Object>>) productHash
.get("references")));
}
if (productHash.get("rootReference") != null) {
product.setRootRef(getReferenceFromXmlRpc(
- (Hashtable<String, Object>) productHash.get("rootReference")));
+ (Map<String, Object>) productHash.get("rootReference")));
}
return product;
}
- public static List<Product> getProductListFromXmlRpc(Vector<Hashtable<String, Object>> productVector) {
+ public static List<Product> getProductListFromXmlRpc(Vector<Map<String, Object>> productVector) {
List<Product> productList = new Vector<Product>();
- for (Hashtable<String, Object> productHash : productVector) {
+ for (Map<String, Object> productHash : productVector) {
Product product = getProductFromXmlRpc(productHash);
productList.add(product);
}
@@ -427,15 +362,15 @@ public final class XmlRpcStructFactory {
return productVector;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcProductList(List<Product> products) {
- Vector<Hashtable<String, Object>> productVector = new Vector<Hashtable<String, Object>>();
+ public static Vector<Map<String, Object>> getXmlRpcProductList(List<Product> products) {
+ Vector<Map<String, Object>> productVector = new Vector<Map<String, Object>>();
if (products == null) {
return productVector;
}
for (Product product : products) {
- Hashtable<String, Object> productHash = getXmlRpcProduct(product);
+ Map<String, Object> productHash = getXmlRpcProduct(product);
productVector.add(productHash);
}
@@ -466,36 +401,8 @@ public final class XmlRpcStructFactory {
return productTypeList;
}
- public static Map<String, Object> getXmlRpcProductTypeMap(ProductType type) {
- Map<String, Object> productTypeHash = new ConcurrentHashMap<String, Object>();
- // TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
- productTypeHash.put("id", type.getProductTypeId());
- if (type.getName() != null) {
- productTypeHash.put("name", type.getName());
- }
- if (type.getDescription() != null) {
- productTypeHash.put("description", type.getDescription());
- }
- if (type.getProductRepositoryPath() != null) {
- productTypeHash.put("repositoryPath",type.getProductRepositoryPath());
- }
- if (type.getVersioner() != null) {
- productTypeHash.put("versionerClass", type.getVersioner());
- }
- if (type.getTypeMetadata() != null) {
- productTypeHash.put("typeMetadata", type.getTypeMetadata().getMap());
- }
- if (type.getExtractors() != null) {
- productTypeHash.put("typeExtractors", getXmlRpcTypeExtractors(type.getExtractors()));
- }
- if (type.getHandlers() != null) {
- productTypeHash.put("typeHandlers", getXmlRpcTypeHandlers(type.getHandlers()));
- }
- return productTypeHash;
- }
-
- public static Hashtable<String, Object> getXmlRpcProductType(ProductType type) {
- Hashtable<String, Object> productTypeHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcProductType(ProductType type) {
+ Map<String, Object> productTypeHash = new Hashtable<String, Object>();
// TODO(bfoster): ProductType ID is currently required by XmlRpcFileManager.
productTypeHash.put("id", type.getProductTypeId());
if (type.getName() != null) {
@@ -537,19 +444,19 @@ public final class XmlRpcStructFactory {
}
if (productTypeHash.get("typeExtractors") != null) {
type.setExtractors(getTypeExtractorsFromXmlRpc(
- (Vector<Hashtable<String, Object>>) productTypeHash
+ (Vector<Map<String, Object>>) productTypeHash
.get("typeExtractors")));
}
if (productTypeHash.get("typeHandlers") != null) {
type.setHandlers(getTypeHandlersFromXmlRpc(
- (Vector<Hashtable<String, Object>>) productTypeHash
+ (Vector<Map<String, Object>>) productTypeHash
.get("typeHandlers")));
}
return type;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
- Vector<Hashtable<String, Object>> extractorsVector = new Vector<Hashtable<String, Object>>();
+ public static Vector<Map<String, Object>> getXmlRpcTypeExtractors(List<ExtractorSpec> extractors) {
+ Vector<Map<String, Object>> extractorsVector = new Vector<Map<String, Object>>();
if (extractors != null && extractors.size() > 0) {
for (ExtractorSpec spec : extractors) {
@@ -571,26 +478,15 @@ public final class XmlRpcStructFactory {
return extractorsVector;
}
- public static Hashtable<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
- Hashtable<String, Object> extractorHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcExtractorSpec(ExtractorSpec spec) {
+ Map<String, Object> extractorHash = new Hashtable<String, Object>();
extractorHash.put("className", spec.getClassName());
extractorHash.put("config",
getXmlRpcProperties(spec.getConfiguration()));
return extractorHash;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
- Vector<Hashtable<String, Object>> handlersVector = new Vector<Hashtable<String, Object>>();
-
- if (typeHandlers != null && typeHandlers.size() > 0) {
- for (TypeHandler typeHandler : typeHandlers) {
- handlersVector.add(getXmlRpcTypeHandler(typeHandler));
- }
- }
-
- return handlersVector;
- }
- public static Vector<Map<String, Object>> getXmlRpcTypeHandlersMap(List<TypeHandler> typeHandlers) {
+ public static Vector<Map<String, Object>> getXmlRpcTypeHandlers(List<TypeHandler> typeHandlers) {
Vector<Map<String, Object>> handlersVector = new Vector<Map<String, Object>>();
if (typeHandlers != null && typeHandlers.size() > 0) {
@@ -602,8 +498,8 @@ public final class XmlRpcStructFactory {
return handlersVector;
}
- public static Hashtable<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
- Hashtable<String, Object> handlerHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcTypeHandler(TypeHandler typeHandler) {
+ Map<String, Object> handlerHash = new Hashtable<String, Object>();
handlerHash.put("className", typeHandler != null ?
typeHandler.getClass().getCanonicalName():"");
handlerHash.put("elementName", typeHandler != null ?
@@ -611,20 +507,11 @@ public final class XmlRpcStructFactory {
return handlerHash;
}
- public static Map<String, Object> getXmlRpcTypeHandlerMap(TypeHandler typeHandler) {
- Map<String, Object> handlerHash = new ConcurrentHashMap<String, Object>();
- handlerHash.put("className", typeHandler != null ?
- typeHandler.getClass().getCanonicalName():"");
- handlerHash.put("elementName", typeHandler != null ?
- typeHandler.getElementName():"");
- return handlerHash;
- }
-
- public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Hashtable<String, Object>> extractorsVector) {
+ public static List<ExtractorSpec> getTypeExtractorsFromXmlRpc(Vector<Map<String, Object>> extractorsVector) {
List<ExtractorSpec> extractors = new Vector<ExtractorSpec>();
if (extractorsVector != null && extractorsVector.size() > 0) {
- for (Hashtable<String, Object> extractorSpecHash : extractorsVector) {
+ for (Map<String, Object> extractorSpecHash : extractorsVector) {
extractors.add(getExtractorSpecFromXmlRpc(extractorSpecHash));
}
}
@@ -638,16 +525,16 @@ public final class XmlRpcStructFactory {
ExtractorSpec spec = new ExtractorSpec();
spec.setClassName((String) extractorSpecHash.get("className"));
spec
- .setConfiguration(getPropertiesFromXmlRpc((Hashtable<String, String>) extractorSpecHash
+ .setConfiguration(getPropertiesFromXmlRpc((Map<String, String>) extractorSpecHash
.get("config")));
return spec;
}
- public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Hashtable<String, Object>> handlersVector) {
+ public static List<TypeHandler> getTypeHandlersFromXmlRpc(Vector<Map<String, Object>> handlersVector) {
List<TypeHandler> handlers = new Vector<TypeHandler>();
if (handlersVector != null && handlersVector.size() > 0) {
- for (Hashtable<String, Object> typeHandlerHash : handlersVector) {
+ for (Map<String, Object> typeHandlerHash : handlersVector) {
handlers.add(getTypeHandlerFromXmlRpc(typeHandlerHash));
}
}
@@ -656,7 +543,7 @@ public final class XmlRpcStructFactory {
}
public static TypeHandler getTypeHandlerFromXmlRpc(
- Hashtable<String, Object> typeHandlerHash) {
+ Map<String, Object> typeHandlerHash) {
TypeHandler typeHandler = GenericFileManagerObjectFactory
.getTypeHandlerFromClassName((String) typeHandlerHash.get("className"));
if(typeHandler != null) {
@@ -678,8 +565,8 @@ public final class XmlRpcStructFactory {
return props;
}
- public static Hashtable<String, String> getXmlRpcProperties(Properties props) {
- Hashtable<String, String> propHash = new Hashtable<String, String>();
+ public static Map<String, String> getXmlRpcProperties(Properties props) {
+ Map<String, String> propHash = new Hashtable<String, String>();
if (props != null && props.keySet().size() > 0) {
for (Object o : props.keySet()) {
@@ -707,31 +594,31 @@ public final class XmlRpcStructFactory {
return refVector;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcReferences(List<Reference> references) {
- Vector<Hashtable<String, Object>> refVector = new Vector<Hashtable<String, Object>>();
+ public static Vector<Map<String, Object>> getXmlRpcReferences(List<Reference> references) {
+ Vector<Map<String, Object>> refVector = new Vector<Map<String, Object>>();
if (references == null) {
return refVector;
}
for (Reference reference : references) {
- Hashtable<String, Object> refHash = getXmlRpcReference(reference);
+ Map<String, Object> refHash = getXmlRpcReference(reference);
refVector.add(refHash);
}
return refVector;
}
- public static List<Reference> getReferencesFromXmlRpc(Vector<Hashtable<String, Object>> referenceVector) {
+ public static List<Reference> getReferencesFromXmlRpc(Vector<Map<String, Object>> referenceVector) {
List<Reference> references = new Vector<Reference>();
- for (Hashtable<String, Object> aReferenceVector : referenceVector) {
+ for (Map<String, Object> aReferenceVector : referenceVector) {
Reference r = getReferenceFromXmlRpc(aReferenceVector);
references.add(r);
}
return references;
}
- public static Hashtable<String, Object> getXmlRpcReference(Reference reference) {
- Hashtable<String, Object> referenceHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcReference(Reference reference) {
+ Map<String, Object> referenceHash = new Hashtable<String, Object>();
referenceHash.put("origReference", reference.getOrigReference());
referenceHash.put("dataStoreReference", reference
.getDataStoreReference() != null ? reference
@@ -753,7 +640,7 @@ public final class XmlRpcStructFactory {
return reference;
}
- public static Reference getReferenceFromXmlRpcHashtable(Hashtable<String, Object> referenceHash) {
+ public static Reference getReferenceFromXmlRpcHashtable(Map<String, Object> referenceHash) {
Reference reference = new Reference();
reference.setDataStoreReference((String) referenceHash
.get("dataStoreReference"));
@@ -763,10 +650,10 @@ public final class XmlRpcStructFactory {
return reference;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcElementListHashtable(List<Element> elementList) {
- Vector<Hashtable<String, Object>> elementVector = new Vector<Hashtable<String, Object>>(elementList.size());
+ public static Vector<Map<String, Object>> getXmlRpcElementListHashtable(List<Element> elementList) {
+ Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
for (Element element : elementList) {
- Hashtable<String, Object> elementHash = getXmlRpcElementHashTable(element);
+ Map<String, Object> elementHash = getXmlRpcElementHashTable(element);
elementVector.add(elementHash);
}
return elementVector;
@@ -775,23 +662,23 @@ public final class XmlRpcStructFactory {
public static Vector<Map<String, Object>> getXmlRpcElementList(List<Element> elementList) {
Vector<Map<String, Object>> elementVector = new Vector<Map<String, Object>>(elementList.size());
for (Element element : elementList) {
- HashMap<String, Object> elementHash = getXmlRpcElement(element);
+ Map<String, Object> elementHash = getXmlRpcElement(element);
elementVector.add(elementHash);
}
return elementVector;
}
- public static List<Element> getElementListFromXmlRpc(Vector<Hashtable<String, Object>> elementVector) {
+ public static List<Element> getElementListFromXmlRpc(Vector<Map<String, Object>> elementVector) {
List<Element> elementList = new Vector<Element>(elementVector.size());
- for (Hashtable<String, Object> elementHash : elementVector) {
+ for (Map<String, Object> elementHash : elementVector) {
Element element = getElementFromXmlRpc(elementHash);
elementList.add(element);
}
return elementList;
}
- public static HashMap<String, Object> getXmlRpcElement(Element element) {
- HashMap<String, Object> elementHash = new HashMap<String, Object>();
+ public static Map<String, Object> getXmlRpcElement(Element element) {
+ Map<String, Object> elementHash = new HashMap<String, Object>();
elementHash.put("id", element.getElementId());
elementHash.put("name", element.getElementName());
@@ -803,8 +690,8 @@ public final class XmlRpcStructFactory {
return elementHash;
}
- public static Hashtable<String, Object> getXmlRpcElementHashTable(Element element) {
- Hashtable<String, Object> elementHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcElementHashTable(Element element) {
+ Map<String, Object> elementHash = new Hashtable<String, Object>();
elementHash.put("id", element.getElementId());
elementHash.put("name", element.getElementName());
@@ -816,7 +703,7 @@ public final class XmlRpcStructFactory {
return elementHash;
}
- public static Element getElementFromXmlRpc(Hashtable<String, Object> elementHash) {
+ public static Element getElementFromXmlRpc(Map<String, Object> elementHash) {
Element element = new Element();
element.setElementId((String) elementHash.get("id"));
element.setElementName((String) elementHash.get("name"));
@@ -826,14 +713,14 @@ public final class XmlRpcStructFactory {
return element;
}
- public static Hashtable<String, Object> getXmlRpcQuery(Query query) {
- Hashtable<String, Object> queryHash = new Hashtable<String, Object>();
- Vector<Hashtable<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
+ public static Map<String, Object> getXmlRpcQuery(Query query) {
+ Map<String, Object> queryHash = new Hashtable<String, Object>();
+ Vector<Map<String, Object>> criteriaVector = getXmlRpcQueryCriteriaList(query.getCriteria());
queryHash.put("criteria", criteriaVector);
return queryHash;
}
- public static Query getQueryFromXmlRpc(Hashtable<String, Object> queryHash) {
+ public static Query getQueryFromXmlRpc(Map<String, Object> queryHash) {
Query query = new Query();
@SuppressWarnings("unchecked")
List<QueryCriteria> criteria = getQueryCriteriaListFromXmlRpc((Vector<Map<String, Object>>) queryHash
@@ -851,10 +738,10 @@ public final class XmlRpcStructFactory {
return query;
}
- public static Vector<Hashtable<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
- Vector<Hashtable<String, Object>> criteriaVector = new Vector<Hashtable<String, Object>>(criteriaList.size());
+ public static Vector<Map<String, Object>> getXmlRpcQueryCriteriaList(List<QueryCriteria> criteriaList) {
+ Vector<Map<String, Object>> criteriaVector = new Vector<Map<String, Object>>(criteriaList.size());
for (QueryCriteria criteria : criteriaList) {
- Hashtable<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
+ Map<String, Object> criteriaHash = getXmlRpcQueryCriteria(criteria);
criteriaVector.add(criteriaHash);
}
@@ -871,8 +758,8 @@ public final class XmlRpcStructFactory {
return criteriaList;
}
- public static Hashtable<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
- Hashtable<String, Object> criteriaHash = new Hashtable<String, Object>();
+ public static Map<String, Object> getXmlRpcQueryCriteria(QueryCriteria criteria) {
+ Map<String, Object> criteriaHash = new Hashtable<String, Object>();
criteriaHash.put("class",criteria.getClass().getCanonicalName());
if(criteria instanceof TermQueryCriteria){
@@ -888,11 +775,11 @@ public final class XmlRpcStructFactory {
} else if(criteria instanceof BooleanQueryCriteria){
BooleanQueryCriteria boolQuery = (BooleanQueryCriteria) criteria;
criteriaHash.put("operator", boolQuery.getOperator());
- Vector<Hashtable<String, Object>> termsHash = new Vector<Hashtable<String, Object>>();
+ Vector<Map<String, Object>> termsHash = new Vector<Map<String, Object>>();
List<QueryCriteria> terms = boolQuery.getTerms();
for (QueryCriteria term : terms) {
- Hashtable<String, Object> termHash = getXmlRpcQueryCriteria(term);
+ Map<String, Object> termHash = getXmlRpcQueryCriteria(term);
termsHash.add(termHash);
}
criteriaHash.put("terms", termsHash);
http://git-wip-us.apache.org/repos/asf/oodt/blob/3e0e5972/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
----------------------------------------------------------------------
diff --git a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
index 73a21dc..0f10a81 100644
--- a/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
+++ b/metadata/src/main/java/org/apache/oodt/cas/metadata/Metadata.java
@@ -15,8 +15,6 @@
package org.apache.oodt.cas.metadata;
-//JDK imports
-
import java.util.Collections;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Hashtable;
@@ -486,7 +484,19 @@ public class Metadata {
public Group(String name) {
this.name = name;
this.values = new Vector<String>();
- this.children = new ConcurrentHashMap<String, Group>();
+ this.children = new Hashtable<String, Group>();
+ }
+
+ public Group(String name, boolean legacy) {
+ this.name = name;
+ this.values = new Vector<String>();
+ if(legacy){
+ this.children = new Hashtable<String, Group>();
+ }
+ else{
+ this.children = new ConcurrentHashMap<String, Group>();
+ }
+
}
public String getName() {
[5/6] oodt git commit: OODT-917 alter XMLRPC interface to support
more generic map types where suitable
Posted by ma...@apache.org.
http://git-wip-us.apache.org/repos/asf/oodt/blob/8705ccf4/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
----------------------------------------------------------------------
diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
index e5ad57b..8c78434 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/system/XmlRpcFileManager.java
@@ -56,7 +56,6 @@ import org.apache.xmlrpc.WebServer;
import com.google.common.collect.Lists;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -80,206 +79,205 @@ import java.util.logging.Logger;
* @author mattmann
* @author bfoster
* @version $Revision$
- *
- * <p>
- * An XML RPC-based File manager.
- * </p>
- *
+ * <p/>
+ * <p> An XML RPC-based File manager. </p>
*/
public class XmlRpcFileManager {
- /* the port to run the XML RPC web server on, default is 1999 */
- private int webServerPort = 1999;
-
- /* our Catalog */
- private Catalog catalog = null;
-
- /* our RepositoryManager */
- private RepositoryManager repositoryManager = null;
-
- /* our DataTransfer */
- private DataTransfer dataTransfer = null;
-
- /* our log stream */
- private static final Logger LOG = Logger.getLogger(XmlRpcFileManager.class.getName());
-
- /* our xml rpc web server */
- private WebServer webServer = null;
-
- /* our data transfer status tracker */
- private TransferStatusTracker transferStatusTracker = null;
-
- /* whether or not to expand a product instance into met */
- private boolean expandProductMet;
-
- /**
- * <p>
- * Creates a new XmlRpcFileManager with the given metadata store factory,
- * and the given data store factory, on the given port.
- * </p>
- *
- * @param port
- * The web server port to run the XML Rpc server on, defaults to
- * 1999.
- */
- public XmlRpcFileManager(int port) throws IOException {
- webServerPort = port;
-
- // start up the web server
- webServer = new WebServer(webServerPort);
- webServer.addHandler("filemgr", this);
- webServer.start();
-
- this.loadConfiguration();
- LOG.log(Level.INFO, "File Manager started by "
- + System.getProperty("user.name", "unknown"));
+ /* the port to run the XML RPC web server on, default is 1999 */
+ private int webServerPort = 1999;
- }
-
- public void setCatalog(Catalog catalog) {
- this.catalog = catalog;
- }
+ /* our Catalog */
+ private Catalog catalog = null;
- public boolean isAlive() {
- return true;
- }
-
- public boolean refreshConfigAndPolicy() {
- boolean status = false;
+ /* our RepositoryManager */
+ private RepositoryManager repositoryManager = null;
- try {
- this.loadConfiguration();
- status = true;
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG
- .log(
- Level.SEVERE,
- "Unable to refresh configuration for file manager " +
- "server: server may be in inoperable state: Message: "
- + e.getMessage());
- }
-
- return status;
+ /* our DataTransfer */
+ private DataTransfer dataTransfer = null;
+
+ /* our log stream */
+ private static final Logger LOG = Logger.getLogger(XmlRpcFileManager.class.getName());
+
+ /* our xml rpc web server */
+ private WebServer webServer = null;
+
+ /* our data transfer status tracker */
+ private TransferStatusTracker transferStatusTracker = null;
+
+ /* whether or not to expand a product instance into met */
+ private boolean expandProductMet;
+
+ /**
+ * <p> Creates a new XmlRpcFileManager with the given metadata store factory, and the given data store factory, on the
+ * given port. </p>
+ *
+ * @param port The web server port to run the XML Rpc server on, defaults to 1999.
+ */
+ public XmlRpcFileManager(int port) throws IOException {
+ webServerPort = port;
+
+ // start up the web server
+ webServer = new WebServer(webServerPort);
+ webServer.addHandler("filemgr", this);
+ webServer.start();
+
+ this.loadConfiguration();
+ LOG.log(Level.INFO, "File Manager started by "
+ + System.getProperty("user.name", "unknown"));
+
+ }
+
+ public void setCatalog(Catalog catalog) {
+ this.catalog = catalog;
+ }
+
+ public boolean isAlive() {
+ return true;
+ }
+
+ public boolean refreshConfigAndPolicy() {
+ boolean status = false;
+
+ try {
+ this.loadConfiguration();
+ status = true;
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG
+ .log(
+ Level.SEVERE,
+ "Unable to refresh configuration for file manager " +
+ "server: server may be in inoperable state: Message: "
+ + e.getMessage());
}
+ return status;
+ }
+
public boolean transferringProduct(Hashtable<String, Object> productHash) {
return this.transferringProductCore(productHash);
}
public boolean transferringProductCore(Map<String, Object> productHash) {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- transferStatusTracker.transferringProduct(p);
- return true;
- }
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ transferStatusTracker.transferringProduct(p);
+ return true;
+ }
- public Map<String, Object> getCurrentFileTransferCore() {
- FileTransferStatus status = transferStatusTracker
- .getCurrentFileTransfer();
- if (status == null) {
- return new ConcurrentHashMap<String, Object>();
- } else {
- return XmlRpcStructFactory.getXmlRpcFileTransferStatus(status);
- }
+ public Map<String, Object> getCurrentFileTransferCore() {
+ FileTransferStatus status = transferStatusTracker
+ .getCurrentFileTransfer();
+ if (status == null) {
+ return new ConcurrentHashMap<String, Object>();
+ } else {
+ return XmlRpcStructFactory.getXmlRpcFileTransferStatus(status);
}
+ }
- public List<Map<String, Object>> getCurrentFileTransfers() {
- List<FileTransferStatus> currentTransfers = transferStatusTracker.getCurrentFileTransfers();
+ public List<Map<String, Object>> getCurrentFileTransfers() {
+ List<FileTransferStatus> currentTransfers = transferStatusTracker.getCurrentFileTransfers();
- if (currentTransfers != null && currentTransfers.size() > 0) {
- return XmlRpcStructFactory
- .getXmlRpcFileTransferStatuses(currentTransfers);
- } else {
- return new Vector<Map<String, Object>>();
- }
+ if (currentTransfers != null && currentTransfers.size() > 0) {
+ return XmlRpcStructFactory
+ .getXmlRpcFileTransferStatuses(currentTransfers);
+ } else {
+ return new Vector<Map<String, Object>>();
}
+ }
public double getProductPctTransferred(Hashtable<String, Object> productHash) {
return this.getProductPctTransferredCore(productHash);
}
- public double getProductPctTransferredCore(Map<String, Object> productHash) {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return transferStatusTracker.getPctTransferred(product);
- }
+
+ public double getProductPctTransferredCore(Map<String, Object> productHash) {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return transferStatusTracker.getPctTransferred(product);
+ }
public double getRefPctTransferred(Hashtable<String, Object> refHash) {
return getRefPctTransferredCore(refHash);
}
- public double getRefPctTransferredCore(Map<String, Object> refHash) {
- Reference reference = XmlRpcStructFactory
- .getReferenceFromXmlRpc(refHash);
- double pct = 0.0;
- try {
- pct = transferStatusTracker.getPctTransferred(reference);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Exception getting transfer percentage for ref: ["
- + reference.getOrigReference() + "]: Message: "
- + e.getMessage());
- }
- return pct;
+ public double getRefPctTransferredCore(Map<String, Object> refHash) {
+ Reference reference = XmlRpcStructFactory
+ .getReferenceFromXmlRpc(refHash);
+ double pct = 0.0;
+
+ try {
+ pct = transferStatusTracker.getPctTransferred(reference);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Exception getting transfer percentage for ref: ["
+ + reference.getOrigReference() + "]: Message: "
+ + e.getMessage());
}
+ return pct;
+ }
public boolean removeProductTransferStatus(Hashtable<String, Object> productHash) {
return removeProductTransferStatusCore(productHash);
}
- public boolean removeProductTransferStatusCore(Map<String, Object> productHash) {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- transferStatusTracker.removeProductTransferStatus(product);
- return true;
- }
+
+ public boolean removeProductTransferStatusCore(Map<String, Object> productHash) {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ transferStatusTracker.removeProductTransferStatus(product);
+ return true;
+ }
+
public boolean isTransferComplete(Hashtable<String, Object> productHash) {
return this.isTransferCompleteCore(productHash);
}
- public boolean isTransferCompleteCore(Map<String, Object> productHash) {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return transferStatusTracker.isTransferComplete(product);
- }
+
+ public boolean isTransferCompleteCore(Map<String, Object> productHash) {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return transferStatusTracker.isTransferComplete(product);
+ }
+
public Map<String, Object> pagedQuery(
Hashtable<String, Object> queryHash,
Hashtable<String, Object> productTypeHash,
int pageNum) throws CatalogException {
- return this.pagedQueryCore(queryHash,productTypeHash,pageNum);
+ return this.pagedQueryCore(queryHash, productTypeHash, pageNum);
}
- public Map<String, Object> pagedQueryCore(
- Map<String, Object> queryHash,
- Map<String, Object> productTypeHash,
- int pageNum) throws CatalogException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
-
- ProductPage prodPage;
+ public Map<String, Object> pagedQueryCore(
+ Map<String, Object> queryHash,
+ Map<String, Object> productTypeHash,
+ int pageNum) throws CatalogException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
- try {
- prodPage = catalog.pagedQuery(this.getCatalogQuery(query, type), type, pageNum);
-
- if (prodPage == null) {
- prodPage = ProductPage.blankPage();
- } else {
- // it is possible here that the underlying catalog did not
- // set the ProductType
- // to obey the contract of the File Manager, we need to make
- // sure its set here
- setProductType(prodPage.getPageProducts());
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Catalog exception performing paged query for product type: ["
- + type.getProductTypeId() + "] query: [" + query
- + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
+ ProductPage prodPage;
- return XmlRpcStructFactory.getXmlRpcProductPage(prodPage);
+ try {
+ prodPage = catalog.pagedQuery(this.getCatalogQuery(query, type), type, pageNum);
+
+ if (prodPage == null) {
+ prodPage = ProductPage.blankPage();
+ } else {
+ // it is possible here that the underlying catalog did not
+ // set the ProductType
+ // to obey the contract of the File Manager, we need to make
+ // sure its set here
+ setProductType(prodPage.getPageProducts());
+ }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Catalog exception performing paged query for product type: ["
+ + type.getProductTypeId() + "] query: [" + query
+ + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
+ return XmlRpcStructFactory.getXmlRpcProductPage(prodPage);
+ }
+
public Map<String, Object> getFirstPage(
- Hashtable<String, Object> productTypeHash){
+ Hashtable<String, Object> productTypeHash) {
return this.getFirstPageCore(productTypeHash);
}
@@ -300,82 +298,86 @@ public class XmlRpcFileManager {
public Map<String, Object> getLastPage(
- Hashtable<String, Object> productTypeHash){
+ Hashtable<String, Object> productTypeHash) {
return this.getLastPageCore(productTypeHash);
}
- public Map<String, Object> getLastPageCore(
- Map<String, Object> productTypeHash) {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- ProductPage page = catalog.getLastProductPage(type);
- try {
- setProductType(page.getPageProducts());
- } catch (Exception e) {
- LOG.log(Level.WARNING,
- "Unable to set product types for product page list: ["
- + page + "]");
- }
- return XmlRpcStructFactory.getXmlRpcProductPage(page);
+
+ public Map<String, Object> getLastPageCore(
+ Map<String, Object> productTypeHash) {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ ProductPage page = catalog.getLastProductPage(type);
+ try {
+ setProductType(page.getPageProducts());
+ } catch (Exception e) {
+ LOG.log(Level.WARNING,
+ "Unable to set product types for product page list: ["
+ + page + "]");
}
+ return XmlRpcStructFactory.getXmlRpcProductPage(page);
+ }
public Map<String, Object> getNextPage(
Hashtable<String, Object> productTypeHash,
- Hashtable<String, Object> currentPageHash){
+ Hashtable<String, Object> currentPageHash) {
return this.getNextPageCore(productTypeHash, currentPageHash);
}
- public Map<String, Object> getNextPageCore(
- Map<String, Object> productTypeHash,
- Map<String, Object> currentPageHash) {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- ProductPage currPage = XmlRpcStructFactory
- .getProductPageFromXmlRpc(currentPageHash);
- ProductPage page = catalog.getNextPage(type, currPage);
- try {
- setProductType(page.getPageProducts());
- } catch (Exception e) {
- LOG.log(Level.WARNING,
- "Unable to set product types for product page list: ["
- + page + "]");
- }
- return XmlRpcStructFactory.getXmlRpcProductPage(page);
+
+ public Map<String, Object> getNextPageCore(
+ Map<String, Object> productTypeHash,
+ Map<String, Object> currentPageHash) {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ ProductPage currPage = XmlRpcStructFactory
+ .getProductPageFromXmlRpc(currentPageHash);
+ ProductPage page = catalog.getNextPage(type, currPage);
+ try {
+ setProductType(page.getPageProducts());
+ } catch (Exception e) {
+ LOG.log(Level.WARNING,
+ "Unable to set product types for product page list: ["
+ + page + "]");
}
+ return XmlRpcStructFactory.getXmlRpcProductPage(page);
+ }
+
public Map<String, Object> getPrevPage(
Hashtable<String, Object> productTypeHash,
- Hashtable<String, Object> currentPageHash){
+ Hashtable<String, Object> currentPageHash) {
return this.getPrevPageCore(productTypeHash, currentPageHash);
}
+
public Map<String, Object> getPrevPageCore(
- Map<String, Object> productTypeHash,
- Map<String, Object> currentPageHash) {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- ProductPage currPage = XmlRpcStructFactory
- .getProductPageFromXmlRpc(currentPageHash);
- ProductPage page = catalog.getPrevPage(type, currPage);
- try {
- setProductType(page.getPageProducts());
- } catch (Exception e) {
- LOG.log(Level.WARNING,
- "Unable to set product types for product page list: ["
- + page + "]");
- }
- return XmlRpcStructFactory.getXmlRpcProductPage(page);
+ Map<String, Object> productTypeHash,
+ Map<String, Object> currentPageHash) {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ ProductPage currPage = XmlRpcStructFactory
+ .getProductPageFromXmlRpc(currentPageHash);
+ ProductPage page = catalog.getPrevPage(type, currPage);
+ try {
+ setProductType(page.getPageProducts());
+ } catch (Exception e) {
+ LOG.log(Level.WARNING,
+ "Unable to set product types for product page list: ["
+ + page + "]");
}
+ return XmlRpcStructFactory.getXmlRpcProductPage(page);
+ }
public String addProductType(Hashtable<String, Object> productTypeHash)
throws RepositoryManagerException {
return this.addProductTypeCore(productTypeHash);
}
- public String addProductTypeCore(Map<String, Object> productTypeHash)
- throws RepositoryManagerException {
- ProductType productType = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- repositoryManager.addProductType(productType);
- return productType.getProductTypeId();
+ public String addProductTypeCore(Map<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ ProductType productType = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ repositoryManager.addProductType(productType);
+ return productType.getProductTypeId();
- }
+ }
public synchronized boolean setProductTransferStatus(
Hashtable<String, Object> productHash)
@@ -395,6 +397,7 @@ public class XmlRpcFileManager {
throws CatalogException {
return this.getNumProductsCore(productTypeHash);
}
+
public int getNumProductsCore(Map<String, Object> productTypeHash)
throws CatalogException {
int numProducts;
@@ -415,22 +418,6 @@ public class XmlRpcFileManager {
return numProducts;
}
- public List<Map<String, Object>> getTopNProductsMap(int n)
- throws CatalogException {
- List<Product> topNProducts;
-
- try {
- topNProducts = catalog.getTopNProducts(n);
- return XmlRpcStructFactory.getXmlRpcProductListMap(topNProducts);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Exception when getting topN products: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
- }
-
public List<Map<String, Object>> getTopNProducts(int n)
throws CatalogException {
List<Product> topNProducts;
@@ -452,72 +439,75 @@ public class XmlRpcFileManager {
throws CatalogException {
return this.getTopNProductsCore(n, productTypeHash);
}
- public List<Map<String, Object>> getTopNProductsCore(int n,
- Map<String, Object> productTypeHash)
- throws CatalogException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- List<Product> topNProducts;
- try {
- topNProducts = catalog.getTopNProducts(n, type);
- return XmlRpcStructFactory.getXmlRpcProductListMap(topNProducts);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.WARNING,
- "Exception when getting topN products by product type: ["
- + type.getProductTypeId() + "]: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
+ public List<Map<String, Object>> getTopNProductsCore(int n,
+ Map<String, Object> productTypeHash)
+ throws CatalogException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ List<Product> topNProducts;
+ try {
+ topNProducts = catalog.getTopNProducts(n, type);
+ return XmlRpcStructFactory.getXmlRpcProductList(topNProducts);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.WARNING,
+ "Exception when getting topN products by product type: ["
+ + type.getProductTypeId() + "]: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
- public boolean hasProduct(String productName) throws CatalogException {
- Product p = catalog.getProductByName(productName);
- return p != null
- && p.getTransferStatus().equals(Product.STATUS_RECEIVED);
- }
+ }
+
+ public boolean hasProduct(String productName) throws CatalogException {
+ Product p = catalog.getProductByName(productName);
+ return p != null
+ && p.getTransferStatus().equals(Product.STATUS_RECEIVED);
+ }
public Map<String, Object> getMetadata(
Hashtable<String, Object> productHash) throws CatalogException {
return this.getMetadataCore(productHash);
}
- public Map<String, Object> getMetadataCore(
- Map<String, Object> productHash) throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getMetadata(product).getHashTable();
- }
+
+ public Map<String, Object> getMetadataCore(
+ Map<String, Object> productHash) throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return this.getMetadata(product).getHashTable();
+ }
public Map<String, Object> getReducedMetadata(
Hashtable<String, Object> productHash, Vector<String> elements)
throws CatalogException {
return this.getReducedMetadataCore(productHash, elements);
}
- public Map<String, Object> getReducedMetadataCore(
- Map<String, Object> productHash, Vector<String> elements)
- throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return this.getReducedMetadata(product, elements).getHashTable();
- }
- public List<Map<String, Object>> getProductTypes()
- throws RepositoryManagerException {
- List<ProductType> productTypeList;
+ public Map<String, Object> getReducedMetadataCore(
+ Map<String, Object> productHash, Vector<String> elements)
+ throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return this.getReducedMetadata(product, elements).getHashTable();
+ }
- try {
- productTypeList = repositoryManager.getProductTypes();
- return XmlRpcStructFactory
- .getXmlRpcProductTypeList(productTypeList);
- } catch (RepositoryManagerException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Unable to obtain product types from repository manager: Message: "
- + e.getMessage());
- throw new RepositoryManagerException(e.getMessage(), e);
- }
+ public List<Map<String, Object>> getProductTypes()
+ throws RepositoryManagerException {
+ List<ProductType> productTypeList;
+
+ try {
+ productTypeList = repositoryManager.getProductTypes();
+ return XmlRpcStructFactory
+ .getXmlRpcProductTypeList(productTypeList);
+ } catch (RepositoryManagerException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Unable to obtain product types from repository manager: Message: "
+ + e.getMessage());
+ throw new RepositoryManagerException(e.getMessage(), e);
}
+ }
public List<Map<String, Object>> getProductReferences(
Hashtable<String, Object> productHash)
@@ -543,203 +533,205 @@ public class XmlRpcFileManager {
}
}
- public Map<String, Object> getProductById(String productId)
- throws CatalogException {
- Product product = null;
- try {
- product = catalog.getProductById(productId);
- // it is possible here that the underlying catalog did not
- // set the ProductType
- // to obey the contract of the File Manager, we need to make
- // sure its set here
- product.setProductType(this.repositoryManager
- .getProductTypeById(product.getProductType()
- .getProductTypeId()));
- return XmlRpcStructFactory.getXmlRpcProduct(product);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "Unable to obtain product by id: ["
- + productId + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- } catch (RepositoryManagerException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "Unable to obtain product type by id: ["
- + product.getProductType().getProductTypeId()
- + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
+ public Map<String, Object> getProductById(String productId)
+ throws CatalogException {
+ Product product = null;
+ try {
+ product = catalog.getProductById(productId);
+ // it is possible here that the underlying catalog did not
+ // set the ProductType
+ // to obey the contract of the File Manager, we need to make
+ // sure its set here
+ product.setProductType(this.repositoryManager
+ .getProductTypeById(product.getProductType()
+ .getProductTypeId()));
+ return XmlRpcStructFactory.getXmlRpcProduct(product);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "Unable to obtain product by id: ["
+ + productId + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ } catch (RepositoryManagerException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "Unable to obtain product type by id: ["
+ + product.getProductType().getProductTypeId()
+ + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
- public Map<String, Object> getProductByName(String productName)
- throws CatalogException {
- Product product = null;
+ }
- try {
- product = catalog.getProductByName(productName);
- // it is possible here that the underlying catalog did not
- // set the ProductType
- // to obey the contract of the File Manager, we need to make
- // sure its set here
- product.setProductType(this.repositoryManager
- .getProductTypeById(product.getProductType()
- .getProductTypeId()));
- return XmlRpcStructFactory.getXmlRpcProduct(product);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "Unable to obtain product by name: ["
- + productName + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- } catch (RepositoryManagerException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "Unable to obtain product type by id: ["
- + product.getProductType().getProductTypeId()
- + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
+ public Map<String, Object> getProductByName(String productName)
+ throws CatalogException {
+ Product product = null;
+
+ try {
+ product = catalog.getProductByName(productName);
+ // it is possible here that the underlying catalog did not
+ // set the ProductType
+ // to obey the contract of the File Manager, we need to make
+ // sure its set here
+ product.setProductType(this.repositoryManager
+ .getProductTypeById(product.getProductType()
+ .getProductTypeId()));
+ return XmlRpcStructFactory.getXmlRpcProduct(product);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "Unable to obtain product by name: ["
+ + productName + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ } catch (RepositoryManagerException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "Unable to obtain product type by id: ["
+ + product.getProductType().getProductTypeId()
+ + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
+ }
public List<Map<String, Object>> getProductsByProductType(
Hashtable<String, Object> productTypeHash)
throws CatalogException {
return this.getProductsByProductTypeCore(productTypeHash);
}
- public List<Map<String, Object>> getProductsByProductTypeCore(
- Map<String, Object> productTypeHash)
- throws CatalogException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- List<Product> productList;
- try {
- productList = catalog.getProductsByProductType(type);
- return XmlRpcStructFactory.getXmlRpcProductListMap(productList);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining products by product type for type: ["
- + type.getName() + "]: Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(), e);
- }
- }
+ public List<Map<String, Object>> getProductsByProductTypeCore(
+ Map<String, Object> productTypeHash)
+ throws CatalogException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ List<Product> productList;
- public List<Map<String, Object>> getElementsByProductType(
- Map<String, Object> productTypeHash)
- throws ValidationLayerException {
- ProductType type = XmlRpcStructFactory
- .getProductTypeFromXmlRpc(productTypeHash);
- List<Element> elementList;
+ try {
+ productList = catalog.getProductsByProductType(type);
+ return XmlRpcStructFactory.getXmlRpcProductList(productList);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining products by product type for type: ["
+ + type.getName() + "]: Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
+ }
+ }
- try {
- elementList = catalog.getValidationLayer().getElements(type);
- Map hm = new ConcurrentHashMap();
- return XmlRpcStructFactory.getXmlRpcElementList(elementList);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining elements for product type: ["
- + type.getName() + "]: Message: " + e.getMessage());
- throw new ValidationLayerException(e.getMessage(), e);
- }
+ public List<Map<String, Object>> getElementsByProductType(
+ Map<String, Object> productTypeHash)
+ throws ValidationLayerException {
+ ProductType type = XmlRpcStructFactory
+ .getProductTypeFromXmlRpc(productTypeHash);
+ List<Element> elementList;
+ try {
+ elementList = catalog.getValidationLayer().getElements(type);
+ return XmlRpcStructFactory.getXmlRpcElementList(elementList);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining elements for product type: ["
+ + type.getName() + "]: Message: " + e.getMessage());
+ throw new ValidationLayerException(e.getMessage(), e);
}
- public Map<String, Object> getElementById(String elementId)
- throws ValidationLayerException {
- Element element;
+ }
- try {
- element = catalog.getValidationLayer().getElementById(elementId);
- return XmlRpcStructFactory.getXmlRpcElement(element);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "exception retrieving element by id: ["
- + elementId + "]: Message: " + e.getMessage());
- throw new ValidationLayerException(e.getMessage(), e);
- }
+ public Map<String, Object> getElementById(String elementId)
+ throws ValidationLayerException {
+ Element element;
+
+ try {
+ element = catalog.getValidationLayer().getElementById(elementId);
+ return XmlRpcStructFactory.getXmlRpcElement(element);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "exception retrieving element by id: ["
+ + elementId + "]: Message: " + e.getMessage());
+ throw new ValidationLayerException(e.getMessage(), e);
}
+ }
- public Map<String, Object> getElementByName(String elementName)
- throws ValidationLayerException {
- Element element;
+ public Map<String, Object> getElementByName(String elementName)
+ throws ValidationLayerException {
+ Element element;
- try {
- element = catalog.getValidationLayer()
- .getElementByName(elementName);
- return XmlRpcStructFactory.getXmlRpcElement(element);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "exception retrieving element by name: ["
- + elementName + "]: Message: " + e.getMessage());
- throw new ValidationLayerException(e.getMessage(), e);
- }
+ try {
+ element = catalog.getValidationLayer()
+ .getElementByName(elementName);
+ return XmlRpcStructFactory.getXmlRpcElement(element);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "exception retrieving element by name: ["
+ + elementName + "]: Message: " + e.getMessage());
+ throw new ValidationLayerException(e.getMessage(), e);
}
+ }
- public List<Map<String,Object>> complexQuery(Hashtable<String, Object> complexQueryHash) throws CatalogException{
+ public List<Map<String, Object>> complexQuery(Hashtable<String, Object> complexQueryHash) throws CatalogException {
return this.complexQueryCore(complexQueryHash);
}
- public List<Map<String, Object>> complexQueryCore(
- Map<String, Object> complexQueryHash) throws CatalogException {
- try {
- ComplexQuery complexQuery = XmlRpcStructFactory
- .getComplexQueryFromXmlRpcMap(complexQueryHash);
-
- // get ProductTypes
- List<ProductType> productTypes;
- if (complexQuery.getReducedProductTypeNames() == null) {
- productTypes = this.repositoryManager.getProductTypes();
- } else {
- productTypes = new Vector<ProductType>();
- for (String productTypeName : complexQuery
- .getReducedProductTypeNames()) {
- productTypes.add(this.repositoryManager
- .getProductTypeByName(productTypeName));
- }
- }
-
- // get Metadata
- List<QueryResult> queryResults = new LinkedList<QueryResult>();
- for (ProductType productType : productTypes) {
- List<String> productIds = catalog.query(this.getCatalogQuery(
- complexQuery, productType), productType);
- for (String productId : productIds) {
- Product product = catalog.getProductById(productId);
- product.setProductType(productType);
- QueryResult qr = new QueryResult(product, this
- .getReducedMetadata(product, complexQuery
- .getReducedMetadata()));
- qr.setToStringFormat(complexQuery
- .getToStringResultFormat());
- queryResults.add(qr);
- }
- }
-
- LOG.log(Level.INFO, "Query returned " + queryResults.size()
- + " results");
-
- // filter query results
- if (complexQuery.getQueryFilter() != null) {
- queryResults = applyFilterToResults(queryResults, complexQuery
- .getQueryFilter());
- LOG.log(Level.INFO, "Filter returned " + queryResults.size()
- + " results");
- }
-
- // sort query results
- if (complexQuery.getSortByMetKey() != null) {
- queryResults = sortQueryResultList(queryResults, complexQuery
- .getSortByMetKey());
- }
-
- return XmlRpcStructFactory.getXmlRpcQueryResultsMap(queryResults);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- throw new CatalogException("Failed to perform complex query : "
- + e.getMessage(), e);
+ public List<Map<String, Object>> complexQueryCore(
+ Map<String, Object> complexQueryHash) throws CatalogException {
+ try {
+ ComplexQuery complexQuery = XmlRpcStructFactory
+ .getComplexQueryFromXmlRpc(complexQueryHash);
+
+ // get ProductTypes
+ List<ProductType> productTypes;
+ if (complexQuery.getReducedProductTypeNames() == null) {
+ productTypes = this.repositoryManager.getProductTypes();
+ } else {
+ productTypes = new Vector<ProductType>();
+ for (String productTypeName : complexQuery
+ .getReducedProductTypeNames()) {
+ productTypes.add(this.repositoryManager
+ .getProductTypeByName(productTypeName));
}
+ }
+
+ // get Metadata
+ List<QueryResult> queryResults = new LinkedList<QueryResult>();
+ for (ProductType productType : productTypes) {
+ List<String> productIds = catalog.query(this.getCatalogQuery(
+ complexQuery, productType), productType);
+ for (String productId : productIds) {
+ Product product = catalog.getProductById(productId);
+ product.setProductType(productType);
+ QueryResult qr = new QueryResult(product, this
+ .getReducedMetadata(product, complexQuery
+ .getReducedMetadata()));
+ qr.setToStringFormat(complexQuery
+ .getToStringResultFormat());
+ queryResults.add(qr);
+ }
+ }
+
+ LOG.log(Level.INFO, "Query returned " + queryResults.size()
+ + " results");
+
+ // filter query results
+ if (complexQuery.getQueryFilter() != null) {
+ queryResults = applyFilterToResults(queryResults, complexQuery
+ .getQueryFilter());
+ LOG.log(Level.INFO, "Filter returned " + queryResults.size()
+ + " results");
+ }
+
+ // sort query results
+ if (complexQuery.getSortByMetKey() != null) {
+ queryResults = sortQueryResultList(queryResults, complexQuery
+ .getSortByMetKey());
+ }
+
+ return XmlRpcStructFactory.getXmlRpcQueryResults(queryResults);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ throw new CatalogException("Failed to perform complex query : "
+ + e.getMessage(), e);
}
+ }
+
public List<Map<String, Object>> query(
Hashtable<String, Object> queryHash,
Hashtable<String, Object> productTypeHash)
@@ -757,12 +749,6 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductList(this.query(query, type));
}
- public Map<String, Object> getProductTypeByNameMap(String productTypeName)
- throws RepositoryManagerException {
- ProductType type = repositoryManager
- .getProductTypeByName(productTypeName);
- return XmlRpcStructFactory.getXmlRpcProductType(type);
- }
public Map<String, Object> getProductTypeByName(String productTypeName)
throws RepositoryManagerException {
@@ -771,66 +757,69 @@ public class XmlRpcFileManager {
return XmlRpcStructFactory.getXmlRpcProductType(type);
}
- public Map<String, Object> getProductTypeById(String productTypeId)
- throws RepositoryManagerException {
- ProductType type;
+ public Map<String, Object> getProductTypeById(String productTypeId)
+ throws RepositoryManagerException {
+ ProductType type;
- try {
- type = repositoryManager.getProductTypeById(productTypeId);
- return XmlRpcStructFactory.getXmlRpcProductType(type);
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining product type by id for product type: ["
- + productTypeId + "]: Message: " + e.getMessage());
- throw new RepositoryManagerException(e.getMessage(), e);
- }
+ try {
+ type = repositoryManager.getProductTypeById(productTypeId);
+ return XmlRpcStructFactory.getXmlRpcProductType(type);
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining product type by id for product type: ["
+ + productTypeId + "]: Message: " + e.getMessage());
+ throw new RepositoryManagerException(e.getMessage(), e);
}
+ }
+
public synchronized boolean updateMetadata(Hashtable<String, Object> productHash,
- Hashtable<String, Object> metadataHash) throws CatalogException{
+ Hashtable<String, Object> metadataHash) throws CatalogException {
return this.updateMetadataCore(productHash, metadataHash);
}
- public synchronized boolean updateMetadataCore(Map<String, Object> productHash,
- Map<String, Object> metadataHash) throws CatalogException{
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- Metadata met = new Metadata();
- met.addMetadata(metadataHash);
- Metadata oldMetadata = catalog.getMetadata(product);
- catalog.removeMetadata(oldMetadata, product);
- catalog.addMetadata(met, product);
- return true;
- }
+ public synchronized boolean updateMetadataCore(Map<String, Object> productHash,
+ Map<String, Object> metadataHash) throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ Metadata met = new Metadata();
+ met.addMetadata(metadataHash);
+ Metadata oldMetadata = catalog.getMetadata(product);
+ catalog.removeMetadata(oldMetadata, product);
+ catalog.addMetadata(met, product);
+ return true;
+ }
public synchronized String catalogProduct(Hashtable<String, Object> productHash)
throws CatalogException {
return this.catalogProductCore(productHash);
}
- public synchronized String catalogProductCore(Map<String, Object> productHash)
- throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return catalogProduct(p);
- }
+
+ public synchronized String catalogProductCore(Map<String, Object> productHash)
+ throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return catalogProduct(p);
+ }
public synchronized boolean addMetadata(Hashtable<String, Object> productHash,
Hashtable<String, String> metadata) throws CatalogException {
return this.addMetadataCore(productHash, metadata);
}
- public synchronized boolean addMetadataCore(Map<String, Object> productHash,
- Map<String, String> metadata) throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- Metadata m = new Metadata();
- m.addMetadata((Map)metadata);
- return addMetadata(p, m) != null;
- }
- public synchronized boolean addProductReferencesCore(Map<String, Object> productHash)
- throws CatalogException {
- Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return addProductReferences(product);
- }
+ public synchronized boolean addMetadataCore(Map<String, Object> productHash,
+ Map<String, String> metadata) throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ Metadata m = new Metadata();
+ m.addMetadata((Map) metadata);
+ return addMetadata(p, m) != null;
+ }
+
+ public synchronized boolean addProductReferencesCore(Map<String, Object> productHash)
+ throws CatalogException {
+ Product product = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return addProductReferences(product);
+ }
public synchronized boolean addProductReferences(Hashtable<String, Object> productHash)
throws CatalogException {
@@ -844,9 +833,9 @@ public class XmlRpcFileManager {
public String ingestProductCore(Map<String, Object> productHash,
- Map<String, String> metadata, boolean clientTransfer)
+ Map<String, String> metadata, boolean clientTransfer)
throws
- CatalogException {
+ CatalogException {
Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
@@ -857,7 +846,7 @@ public class XmlRpcFileManager {
// now add the metadata
Metadata m = new Metadata();
- m.addMetadata((Map)metadata);
+ m.addMetadata((Map) metadata);
Metadata expandedMetdata = addMetadata(p, m);
// version the product
@@ -872,9 +861,9 @@ public class XmlRpcFileManager {
} catch (Exception e) {
LOG.log(Level.SEVERE,
"ingestProduct: VersioningException when versioning Product: "
- + p.getProductName() + " with Versioner "
- + p.getProductType().getVersioner() + ": Message: "
- + e.getMessage());
+ + p.getProductName() + " with Versioner "
+ + p.getProductType().getVersioner() + ": Message: "
+ + e.getMessage());
throw new VersioningException(e);
}
@@ -884,8 +873,8 @@ public class XmlRpcFileManager {
if (!clientTransfer) {
LOG.log(Level.FINEST,
- "File Manager: ingest: no client transfer enabled, "
- + "server transfering product: [" + p.getProductName() + "]");
+ "File Manager: ingest: no client transfer enabled, "
+ + "server transfering product: [" + p.getProductName() + "]");
// now transfer the product
try {
@@ -897,14 +886,14 @@ public class XmlRpcFileManager {
catalog.setProductTransferStatus(p);
} catch (CatalogException e) {
LOG.log(Level.SEVERE, "ingestProduct: CatalogException "
- + "when updating product transfer status for Product: "
- + p.getProductName() + " Message: " + e.getMessage());
+ + "when updating product transfer status for Product: "
+ + p.getProductName() + " Message: " + e.getMessage());
throw e;
}
} catch (Exception e) {
LOG.log(Level.SEVERE,
"ingestProduct: DataTransferException when transfering Product: "
- + p.getProductName() + ": Message: " + e.getMessage());
+ + p.getProductName() + ": Message: " + e.getMessage());
throw new DataTransferException(e);
}
}
@@ -914,224 +903,230 @@ public class XmlRpcFileManager {
} catch (Exception e) {
LOG.log(Level.SEVERE, e.getMessage());
throw new CatalogException("Error ingesting product [" + p + "] : "
- + e.getMessage(),e);
+ + e.getMessage(), e);
}
}
+
public byte[] retrieveFile(String filePath, int offset, int numBytes)
- throws DataTransferException {
- FileInputStream is = null;
- try {
- byte[] fileData = new byte[numBytes];
- (is = new FileInputStream(filePath)).skip(offset);
- int bytesRead = is.read(fileData);
- if (bytesRead != -1) {
- byte[] fileDataTruncated = new byte[bytesRead];
- System.arraycopy(fileData, 0, fileDataTruncated, 0, bytesRead);
- return fileDataTruncated;
- } else {
- return new byte[0];
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE, "Failed to read '" + numBytes
- + "' bytes from file '" + filePath + "' at index '" + offset
- + "' : " + e.getMessage(), e);
- throw new DataTransferException("Failed to read '" + numBytes
- + "' bytes from file '" + filePath + "' at index '" + offset
- + "' : " + e.getMessage(), e);
- } finally {
- try {
- if (is != null) {
- is.close();
- }
- } catch (Exception ignored) {}
+ throws DataTransferException {
+ FileInputStream is = null;
+ try {
+ byte[] fileData = new byte[numBytes];
+ (is = new FileInputStream(filePath)).skip(offset);
+ int bytesRead = is.read(fileData);
+ if (bytesRead != -1) {
+ byte[] fileDataTruncated = new byte[bytesRead];
+ System.arraycopy(fileData, 0, fileDataTruncated, 0, bytesRead);
+ return fileDataTruncated;
+ } else {
+ return new byte[0];
}
- }
-
- public boolean transferFile(String filePath, byte[] fileData, int offset,
- int numBytes) {
- File outFile = new File(filePath);
- boolean success = true;
-
- FileOutputStream fOut = null;
-
- if (outFile.exists()) {
- try {
- fOut = new FileOutputStream(outFile, true);
- } catch (FileNotFoundException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "FileNotFoundException when trying to use RandomAccess file on "
- + filePath + ": Message: " + e.getMessage());
- success = false;
- }
- } else {
- // create the output directory
- String outFileDirPath = outFile.getAbsolutePath().substring(0,
- outFile.getAbsolutePath().lastIndexOf("/"));
- LOG.log(Level.INFO, "Outfile directory: " + outFileDirPath);
- File outFileDir = new File(outFileDirPath);
- outFileDir.mkdirs();
-
- try {
- fOut = new FileOutputStream(outFile, false);
- } catch (FileNotFoundException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "FileNotFoundException when trying to use RandomAccess file on "
- + filePath + ": Message: " + e.getMessage());
- success = false;
- }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, "Failed to read '" + numBytes
+ + "' bytes from file '" + filePath + "' at index '" + offset
+ + "' : " + e.getMessage(), e);
+ throw new DataTransferException("Failed to read '" + numBytes
+ + "' bytes from file '" + filePath + "' at index '" + offset
+ + "' : " + e.getMessage(), e);
+ } finally {
+ try {
+ if (is != null) {
+ is.close();
}
+ } catch (Exception ignored) {
+ }
+ }
+ }
- if (success) {
- try {
- fOut.write(fileData, (int) offset, (int) numBytes);
- } catch (IOException e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE, "IOException when trying to write file "
- + filePath + ": Message: " + e.getMessage());
- success = false;
- } finally {
- try {
- fOut.close();
- } catch (Exception ignore) {
- }
-
- }
+ public boolean transferFile(String filePath, byte[] fileData, int offset,
+ int numBytes) {
+ File outFile = new File(filePath);
+ boolean success = true;
+
+ FileOutputStream fOut = null;
+
+ if (outFile.exists()) {
+ try {
+ fOut = new FileOutputStream(outFile, true);
+ } catch (FileNotFoundException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "FileNotFoundException when trying to use RandomAccess file on "
+ + filePath + ": Message: " + e.getMessage());
+ success = false;
+ }
+ } else {
+ // create the output directory
+ String outFileDirPath = outFile.getAbsolutePath().substring(0,
+ outFile.getAbsolutePath().lastIndexOf("/"));
+ LOG.log(Level.INFO, "Outfile directory: " + outFileDirPath);
+ File outFileDir = new File(outFileDirPath);
+ outFileDir.mkdirs();
+
+ try {
+ fOut = new FileOutputStream(outFile, false);
+ } catch (FileNotFoundException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "FileNotFoundException when trying to use RandomAccess file on "
+ + filePath + ": Message: " + e.getMessage());
+ success = false;
+ }
+ }
+
+ if (success) {
+ try {
+ fOut.write(fileData, (int) offset, (int) numBytes);
+ } catch (IOException e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE, "IOException when trying to write file "
+ + filePath + ": Message: " + e.getMessage());
+ success = false;
+ } finally {
+ try {
+ fOut.close();
+ } catch (Exception ignore) {
}
- return success;
+ }
}
+ return success;
+ }
+
public boolean moveProduct(Hashtable<String, Object> productHash, String newPath)
throws DataTransferException {
return this.moveProductCore(productHash, newPath);
}
- public boolean moveProductCore(Map<String, Object> productHash, String newPath)
- throws DataTransferException {
-
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
-
- // first thing we care about is if the product is flat or heirarchical
- if (p.getProductStructure().equals(Product.STRUCTURE_FLAT)) {
- // we just need to get its first reference
- if (p.getProductReferences() == null || (p.getProductReferences().size() != 1)) {
- throw new DataTransferException(
- "Flat products must have a single reference: cannot move");
- }
-
- // okay, it's fine to move it
- // first, we need to update the data store ref
- Reference r = p.getProductReferences().get(0);
- if (r.getDataStoreReference().equals(
- new File(newPath).toURI().toString())) {
- throw new DataTransferException("cannot move product: ["
- + p.getProductName() + "] to same location: ["
- + r.getDataStoreReference() + "]");
- }
-
- // create a copy of the current data store path: we'll need it to
- // do the data transfer
- Reference copyRef = new Reference(r);
-
- // update the copyRef to have the data store ref as the orig ref
- // the the newLoc as the new ref
- copyRef.setOrigReference(r.getDataStoreReference());
- copyRef.setDataStoreReference(new File(newPath).toURI().toString());
-
- p.getProductReferences().clear();
- p.getProductReferences().add(copyRef);
-
- // now transfer it
- try {
- this.dataTransfer.transferProduct(p);
- } catch (IOException e) {
- throw new DataTransferException(e);
- }
-
- // now delete the original copy
- try {
- if (!new File(new URI(copyRef.getOrigReference())).delete()) {
- LOG.log(Level.WARNING, "Deletion of original file: ["
- + r.getDataStoreReference()
- + "] on product move returned false");
- }
- } catch (URISyntaxException e) {
- throw new DataTransferException(
- "URI Syntax exception trying to remove original product ref: Message: "
- + e.getMessage(), e);
- }
-
- // now save the updated reference
- try {
- this.catalog.modifyProduct(p);
- return true;
- } catch (CatalogException e) {
- throw new DataTransferException(e.getMessage(),e);
- }
- } else {
- throw new UnsupportedOperationException(
- "Moving of heirarhical and stream products not supported yet");
+
+ public boolean moveProductCore(Map<String, Object> productHash, String newPath)
+ throws DataTransferException {
+
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+
+ // first thing we care about is if the product is flat or heirarchical
+ if (p.getProductStructure().equals(Product.STRUCTURE_FLAT)) {
+ // we just need to get its first reference
+ if (p.getProductReferences() == null || (p.getProductReferences().size() != 1)) {
+ throw new DataTransferException(
+ "Flat products must have a single reference: cannot move");
+ }
+
+ // okay, it's fine to move it
+ // first, we need to update the data store ref
+ Reference r = p.getProductReferences().get(0);
+ if (r.getDataStoreReference().equals(
+ new File(newPath).toURI().toString())) {
+ throw new DataTransferException("cannot move product: ["
+ + p.getProductName() + "] to same location: ["
+ + r.getDataStoreReference() + "]");
+ }
+
+ // create a copy of the current data store path: we'll need it to
+ // do the data transfer
+ Reference copyRef = new Reference(r);
+
+ // update the copyRef to have the data store ref as the orig ref
+ // the the newLoc as the new ref
+ copyRef.setOrigReference(r.getDataStoreReference());
+ copyRef.setDataStoreReference(new File(newPath).toURI().toString());
+
+ p.getProductReferences().clear();
+ p.getProductReferences().add(copyRef);
+
+ // now transfer it
+ try {
+ this.dataTransfer.transferProduct(p);
+ } catch (IOException e) {
+ throw new DataTransferException(e);
+ }
+
+ // now delete the original copy
+ try {
+ if (!new File(new URI(copyRef.getOrigReference())).delete()) {
+ LOG.log(Level.WARNING, "Deletion of original file: ["
+ + r.getDataStoreReference()
+ + "] on product move returned false");
}
- }
+ } catch (URISyntaxException e) {
+ throw new DataTransferException(
+ "URI Syntax exception trying to remove original product ref: Message: "
+ + e.getMessage(), e);
+ }
- public boolean removeFile(String filePath) throws DataTransferException, IOException {
- // TODO(bfoster): Clean this up so that it deletes by product not file.
- Product product = new Product();
- Reference r = new Reference();
- r.setDataStoreReference(filePath);
- product.setProductReferences(Lists.newArrayList(r));
- dataTransfer.deleteProduct(product);
- return true;
+ // now save the updated reference
+ try {
+ this.catalog.modifyProduct(p);
+ return true;
+ } catch (CatalogException e) {
+ throw new DataTransferException(e.getMessage(), e);
+ }
+ } else {
+ throw new UnsupportedOperationException(
+ "Moving of heirarhical and stream products not supported yet");
}
+ }
+
+ public boolean removeFile(String filePath) throws DataTransferException, IOException {
+ // TODO(bfoster): Clean this up so that it deletes by product not file.
+ Product product = new Product();
+ Reference r = new Reference();
+ r.setDataStoreReference(filePath);
+ product.setProductReferences(Lists.newArrayList(r));
+ dataTransfer.deleteProduct(product);
+ return true;
+ }
public boolean modifyProduct(Hashtable<?, ?> productHash) throws CatalogException {
return this.modifyProductCore(productHash);
}
- public boolean modifyProductCore(Map<?, ?> productHash) throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- try {
- catalog.modifyProduct(p);
- } catch (CatalogException e) {
- LOG.log(Level.WARNING, "Exception modifying product: ["
- + p.getProductId() + "]: Message: " + e.getMessage(), e);
- throw e;
- }
+ public boolean modifyProductCore(Map<?, ?> productHash) throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return true;
+ try {
+ catalog.modifyProduct(p);
+ } catch (CatalogException e) {
+ LOG.log(Level.WARNING, "Exception modifying product: ["
+ + p.getProductId() + "]: Message: " + e.getMessage(), e);
+ throw e;
}
- public boolean removeProduct(Map<String, Object> productHash) throws CatalogException {
- Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
+ return true;
+ }
- try {
- catalog.removeProduct(p);
- } catch (CatalogException e) {
- LOG.log(Level.WARNING, "Exception modifying product: ["
- + p.getProductId() + "]: Message: " + e.getMessage(), e);
- throw e;
- }
+ public boolean removeProduct(Map<String, Object> productHash) throws CatalogException {
+ Product p = XmlRpcStructFactory.getProductFromXmlRpc(productHash);
- return true;
+ try {
+ catalog.removeProduct(p);
+ } catch (CatalogException e) {
+ LOG.log(Level.WARNING, "Exception modifying product: ["
+ + p.getProductId() + "]: Message: " + e.getMessage(), e);
+ throw e;
}
+
+ return true;
+ }
+
public Map<String, Object> getCatalogValues(
Hashtable<String, Object> metadataHash,
Hashtable<String, Object> productTypeHash)
throws RepositoryManagerException {
return this.getCatalogValuesCore(metadataHash, productTypeHash);
}
- public Map<String, Object> getCatalogValuesCore(
- Map<String, Object> metadataHash,
- Map<String, Object> productTypeHash)
- throws RepositoryManagerException {
- Metadata m = new Metadata();
- m.addMetadata(metadataHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getCatalogValues(m, productType).getHashTable();
- }
+
+ public Map<String, Object> getCatalogValuesCore(
+ Map<String, Object> metadataHash,
+ Map<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ Metadata m = new Metadata();
+ m.addMetadata(metadataHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return this.getCatalogValues(m, productType).getHashTable();
+ }
public Map<String, Object> getOrigValues(
Hashtable<String, Object> metadataHash,
@@ -1140,15 +1135,15 @@ public class XmlRpcFileManager {
return this.getOrigValuesCore(metadataHash, productTypeHash);
}
- public Map<String, Object> getOrigValuesCore(
- Map<String, Object> metadataHash,
- Map<String, Object> productTypeHash)
- throws RepositoryManagerException {
- Metadata m = new Metadata();
- m.addMetadata(metadataHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return this.getOrigValues(m, productType).getHashTable();
- }
+ public Map<String, Object> getOrigValuesCore(
+ Map<String, Object> metadataHash,
+ Map<String, Object> productTypeHash)
+ throws RepositoryManagerException {
+ Metadata m = new Metadata();
+ m.addMetadata(metadataHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return this.getOrigValues(m, productType).getHashTable();
+ }
public Map<String, Object> getCatalogQuery(
Hashtable<String, Object> queryHash,
@@ -1156,305 +1151,306 @@ public class XmlRpcFileManager {
throws RepositoryManagerException, QueryFormulationException {
return this.getCatalogQueryCore(queryHash, productTypeHash);
}
- public Map<String, Object> getCatalogQueryCore(
- Map<String, Object> queryHash,
- Map<String, Object> productTypeHash)
- throws RepositoryManagerException, QueryFormulationException {
- Query query = XmlRpcStructFactory.getQueryFromXmlRpcMap(queryHash);
- ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
- return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
- }
-
- public static void main(String[] args) throws IOException {
- int portNum = -1;
- String usage = "FileManager --portNum <port number for xml rpc service>\n";
+ public Map<String, Object> getCatalogQueryCore(
+ Map<String, Object> queryHash,
+ Map<String, Object> productTypeHash)
+ throws RepositoryManagerException, QueryFormulationException {
+ Query query = XmlRpcStructFactory.getQueryFromXmlRpc(queryHash);
+ ProductType productType = XmlRpcStructFactory.getProductTypeFromXmlRpc(productTypeHash);
+ return XmlRpcStructFactory.getXmlRpcQuery(this.getCatalogQuery(query, productType));
+ }
- for (int i = 0; i < args.length; i++) {
- if (args[i].equals("--portNum")) {
- portNum = Integer.parseInt(args[++i]);
- }
- }
- if (portNum == -1) {
- System.err.println(usage);
- System.exit(1);
- }
-
- @SuppressWarnings("unused")
- XmlRpcFileManager manager = new XmlRpcFileManager(portNum);
+ public static void main(String[] args) throws IOException {
+ int portNum = -1;
+ String usage = "FileManager --portNum <port number for xml rpc service>\n";
- for (;;) {
- try {
- Thread.currentThread().join();
- } catch (InterruptedException ignore) {
- }
- }
+ for (int i = 0; i < args.length; i++) {
+ if (args[i].equals("--portNum")) {
+ portNum = Integer.parseInt(args[++i]);
+ }
}
- public boolean shutdown() {
- if (this.webServer != null) {
- this.webServer.shutdown();
- this.webServer = null;
- return true;
- } else {
- return false;
- }
+ if (portNum == -1) {
+ System.err.println(usage);
+ System.exit(1);
}
- private synchronized String catalogProduct(Product p)
- throws CatalogException {
- try {
- catalog.addProduct(p);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE,
- "ingestProduct: CatalogException when adding Product: "
- + p.getProductName() + " to Catalog: Message: "
- + e.getMessage());
- throw e;
- }
+ @SuppressWarnings("unused")
+ XmlRpcFileManager manager = new XmlRpcFileManager(portNum);
- return p.getProductId();
+ for (; ; ) {
+ try {
+ Thread.currentThread().join();
+ } catch (InterruptedException ignore) {
+ }
}
+ }
- private synchronized Metadata addMetadata(Product p, Metadata m)
- throws CatalogException {
-
- //apply handlers
- try {
- m = this.getCatalogValues(m, p.getProductType());
- } catch (Exception e) {
- LOG.log(Level.SEVERE, "Failed to get handlers for product '" + p
- + "' : " + e.getMessage());
- }
-
- // first do server side metadata extraction
- Metadata metadata = runExtractors(p, m);
-
- try {
- catalog.addMetadata(metadata, p);
- } catch (CatalogException e) {
- LOG.log(Level.SEVERE,
- "ingestProduct: CatalogException when adding metadata "
- + metadata + " for product: " + p.getProductName()
- + ": Message: " + e.getMessage());
- throw e;
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "ingestProduct: General Exception when adding metadata "
- + metadata + " for product: " + p.getProductName()
- + ": Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(),e);
- }
+ public boolean shutdown() {
+ if (this.webServer != null) {
+ this.webServer.shutdown();
+ this.webServer = null;
+ return true;
+ } else {
+ return false;
+ }
+ }
- return metadata;
+ private synchronized String catalogProduct(Product p)
+ throws CatalogException {
+ try {
+ catalog.addProduct(p);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE,
+ "ingestProduct: CatalogException when adding Product: "
+ + p.getProductName() + " to Catalog: Message: "
+ + e.getMessage());
+ throw e;
}
- private Metadata runExtractors(Product product, Metadata metadata) throws CatalogException {
- // make sure that the product type definition is present
- if(product.getProductType() == null){
- LOG.log(Level.SEVERE, "Failed to run extractor for: "+product.getProductId()+":"+product
- .getProductName()+" product type cannot be null.");
- throw new CatalogException("Failed to run extractor for: "+product.getProductId()+":"+product
- .getProductName()+" product type cannot be null.");
- }
- try {
- product.setProductType(repositoryManager.getProductTypeById(product
- .getProductType().getProductTypeId()));
- } catch (RepositoryManagerException e) {
- LOG.log(Level.SEVERE, "Failed to load ProductType " + product
- .getProductType().getProductTypeId(), e);
- return null;
- }
+ return p.getProductId();
+ }
- Metadata met = new Metadata();
- met.addMetadata(metadata.getHashTable());
-
- if (product.getProductType().getExtractors() != null) {
- for (ExtractorSpec spec: product.getProductType().getExtractors()) {
- FilemgrMetExtractor extractor = GenericFileManagerObjectFactory
- .getExtractorFromClassName(spec.getClassName());
- if (extractor != null) {
- extractor.configure(spec.getConfiguration());
- }
- LOG.log(Level.INFO, "Running Met Extractor: ["
- + (extractor != null ? extractor.getClass().getName() : null)
- + "] for product type: ["
- + product.getProductType().getName() + "]");
- try {
- met = extractor != null ? extractor.extractMetadata(product, met) : null;
- } catch (MetExtractionException e) {
- LOG.log(Level.SEVERE,
- "Exception extractor metadata from product: ["
- + product.getProductName()
- + "]: using extractor: ["
- + extractor.getClass().getName()
- + "]: Message: " + e.getMessage(), e);
- }
- }
- }
+ private synchronized Metadata addMetadata(Product p, Metadata m)
+ throws CatalogException {
- return met;
+ //apply handlers
+ try {
+ m = this.getCatalogValues(m, p.getProductType());
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, "Failed to get handlers for product '" + p
+ + "' : " + e.getMessage());
}
- private synchronized boolean addProductReferences(Product product)
- throws CatalogException {
- catalog.addProductReferences(product);
- return true;
+ // first do server side metadata extraction
+ Metadata metadata = runExtractors(p, m);
+
+ try {
+ catalog.addMetadata(metadata, p);
+ } catch (CatalogException e) {
+ LOG.log(Level.SEVERE,
+ "ingestProduct: CatalogException when adding metadata "
+ + metadata + " for product: " + p.getProductName()
+ + ": Message: " + e.getMessage());
+ throw e;
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "ingestProduct: General Exception when adding metadata "
+ + metadata + " for product: " + p.getProductName()
+ + ": Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
- private void setProductType(List<Product> products) throws RepositoryManagerException {
- if (products != null && products.size() > 0) {
- for (Product p : products) {
- p.setProductType(repositoryManager.getProductTypeById(p
- .getProductType().getProductTypeId()));
- }
- }
+ return metadata;
+ }
+
+ private Metadata runExtractors(Product product, Metadata metadata) throws CatalogException {
+ // make sure that the product type definition is present
+ if (product.getProductType() == null) {
+ LOG.log(Level.SEVERE, "Failed to run extractor for: " + product.getProductId() + ":" + product
+ .getProductName() + " product type cannot be null.");
+ throw new CatalogException("Failed to run extractor for: " + product.getProductId() + ":" + product
+ .getProductName() + " product type cannot be null.");
}
-
- private List<Product> query(Query query, ProductType productType) throws CatalogException {
- List<String> productIdList;
- List<Product> productList;
-
- try {
- productIdList = catalog.query(this.getCatalogQuery(query, productType), productType);
-
- if (productIdList != null && productIdList.size() > 0) {
- productList = new Vector<Product>(productIdList.size());
- for (String productId : productIdList) {
- Product product = catalog.getProductById(productId);
- // it is possible here that the underlying catalog did not
- // set the ProductType
- // to obey the contract of the File Manager, we need to make
- // sure its set here
- product.setProductType(this.repositoryManager
- .getProductTypeById(product.getProductType()
- .getProductTypeId()));
- productList.add(product);
- }
- return productList;
- } else {
- return new Vector<Product>(); // null values not supported by XML-RPC
- }
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception performing query against catalog for product type: ["
- + productType.getName() + "] Message: " + e.getMessage());
- throw new CatalogException(e.getMessage(),e);
+ try {
+ product.setProductType(repositoryManager.getProductTypeById(product
+ .getProductType().getProductTypeId()));
+ } catch (RepositoryManagerException e) {
+ LOG.log(Level.SEVERE, "Failed to load ProductType " + product
+ .getProductType().getProductTypeId(), e);
+ return null;
+ }
+
+ Metadata met = new Metadata();
+ met.addMetadata(metadata.getHashTable());
+
+ if (product.getProductType().getExtractors() != null) {
+ for (ExtractorSpec spec : product.getProductType().getExtractors()) {
+ FilemgrMetExtractor extractor = GenericFileManagerObjectFactory
+ .getExtractorFromClassName(spec.getClassName());
+ if (extractor != null) {
+ extractor.configure(spec.getConfiguration());
}
- }
-
- private Metadata getReducedMetadata(Product product, List<String> elements) throws CatalogException {
+ LOG.log(Level.INFO, "Running Met Extractor: ["
+ + (extractor != null ? extractor.getClass().getName() : null)
+ + "] for product type: ["
+ + product.getProductType().getName() + "]");
try {
- Metadata m;
- if (elements != null && elements.size() > 0) {
- m = catalog.getReducedMetadata(product, elements);
- }else {
- m = this.getMetadata(product);
- }
- if(this.expandProductMet) {
- m = this.buildProductMetadata(product, m);
- }
- return this.getOrigValues(m, product.getProductType());
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining metadata from catalog for product: ["
- + product.getProductId() + "]: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(),e);
+ met = extractor != null ? extractor.extractMetadata(product, met) : null;
+ } catch (MetExtractionException e) {
+ LOG.log(Level.SEVERE,
+ "Exception extractor metadata from product: ["
+ + product.getProductName()
+ + "]: using extractor: ["
+ + extractor.getClass().getName()
+ + "]: Message: " + e.getMessage(), e);
}
+ }
}
-
- private Metadata getMetadata(Product product) throws CatalogException {
- try {
- Metadata m = catalog.getMetadata(product);
- if(this.expandProductMet) {
- m = this.buildProductMetadata(product, m);
- }
- return this.getOrigValues(m, product.getProductType());
- } catch (Exception e) {
- LOG.log(Level.SEVERE, e.getMessage());
- LOG.log(Level.SEVERE,
- "Exception obtaining metadata from catalog for product: ["
- + product.getProductId() + "]: Message: "
- + e.getMessage());
- throw new CatalogException(e.getMessage(),e);
- }
+
+ return met;
+ }
+
+ private synchronized boolean addProductReferences(Product product)
+ throws CatalogException {
+ catalog.addProductReferences(product);
+ return true;
+ }
+
+ private void setProductType(List<Product> products) throws RepositoryManagerException {
+ if (products != null && products.size() > 0) {
+ for (Product p : products) {
+ p.setProductType(repositoryManager.getProductTypeById(p
+ .getProductType().getProductTypeId()));
+ }
}
-
- private Metadata getOrigValues(Metadata metadata, ProductType productType)
- throws RepositoryManagerException {
- List<TypeHandler> handlers = this.repositoryManager.getProductTypeById(
- productType.getProductTypeId()).getHandlers();
- if (handlers != null) {
- for (TypeHandler handler : handlers) {
- handler.postGetMetadataHandle(metadata);
- }
+ }
+
+ private List<Product> query(Query query, ProductType productType) throws CatalogException {
+ List<String> productIdList;
+ List<Product> productList;
+
+ try {
+ productIdList = catalog.query(this.getCatalogQuery(query, productType), productType);
+
+ if (productIdList != null && productIdList.size() > 0) {
+ productList = new Vector<Product>(productIdList.size());
+ for (String productId : productIdList) {
+ Product product = catalog.getProductById(productId);
+ // it is possible here that the underlying catalog did not
+ // set the ProductType
+ // to obey the contract of the File Manager, we need to make
+ // sure its set here
+ product.setProductType(this.repositoryManager
+ .getProductTypeById(product.getProductType()
+ .getProductTypeId()));
+ productList.add(product);
}
- return metadata;
+ return productList;
+ } else {
+ return new Vector<Product>(); // null values not supported by XML-RPC
+ }
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception performing query against catalog for product type: ["
+ + productType.getName() + "] Message: " + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
-
- private Metadata getCatalogValues(Metadata metadata, ProductType productType)
- throws RepositoryManagerException {
- List<TypeHandler> handlers = this.repositoryManager.getProductTypeById(
- productType.getProductTypeId()).getHandlers();
- if (handlers != null) {
- for (TypeHandler handler : handlers) {
- handler.preAddMetadataHandle(metadata);
- }
- }
- return metadata;
+ }
+
+ private Metadata getReducedMetadata(Product product, List<String> elements) throws CatalogException {
+ try {
+ Metadata m;
+ if (elements != null && elements.size() > 0) {
+ m = catalog.getReducedMetadata(product, elements);
+ } else {
+ m = this.getMetadata(product);
+ }
+ if (this.expandProductMet) {
+ m = this.buildProductMetadata(product, m);
+ }
+ return this.getOrigValues(m, product.getProductType());
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining metadata from catalog for product: ["
+ + product.getProductId() + "]: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
-
- private Query getCatalogQuery(Query query, ProductType productType)
- throws RepositoryManagerException, QueryFormulationException {
- List<TypeHandler> handlers = this.repositoryManager.getProductTypeById(
- productType.getProductTypeId()).getHandlers();
- if (handlers != null) {
- for (TypeHandler handler : handlers) {
- handler.preQueryHandle(query);
- }
- }
- return query;
+ }
+
+ private Metadata getMetadata(Product product) throws CatalogException {
+ try {
+ Metadata m = catalog.getMetadata(product);
+ if (this.expandProductMet) {
+ m = this.buildProductMetadata(product, m);
+ }
+ return this.getOrigValues(m, product.getProductType());
+ } catch (Exception e) {
+ LOG.log(Level.SEVERE, e.getMessage());
+ LOG.log(Level.SEVERE,
+ "Exception obtaining metadata from catalog for product: ["
+ + product.getProductId() + "]: Message: "
+ + e.getMessage());
+ throw new CatalogException(e.getMessage(), e);
}
+ }
- @SuppressWarnings("unchecked")
- private List<QueryResult> applyFilterToResults(
- List<QueryResult> queryResults, QueryFilter queryFilter)
- throws Exception {
- List<TimeEvent> events = new LinkedList<TimeEvent>();
- for (QueryResult queryResult : queryResults) {
- Metadata m = new Metadata();
- m.addMetadata(queryFilter.getPriorityMetKey(), queryResult
- .getMetadata().getMetadata(queryFilter.getPriorityMetKey()));
- events.add(new ObjectTimeEvent<QueryResult>(
- DateUtils.getTimeInMillis(DateUtils.toCalendar(queryResult
- .getMetadata().getMetadata(queryFilter.getStartDateTimeMetKey()),
- DateUtils.FormatType.UTC_FORMAT), DateUtils.julianEpoch),
- DateUtils.getTimeInMillis(DateUtils.toCalendar(queryResult.getMetadata()
- .getMetadata(queryFilter.getEndDateTimeMetKey()),
- DateUtils.FormatType.UTC_FORMAT),
- DateUtils.julianEpoch), queryFilter.getConverter()
- .convertToPriority(this.getCatalogValues(m,
- queryResult.getProduct().getProductType())
- .getMetadata(queryFilter.getPriorityMetKey())),
- queryResult));
- }
- events = queryFilter.getFilterAlgor().filterEvents(events);
- List<QueryResult> filteredQueryResults = new LinkedList<QueryResult>();
- for (TimeEvent event : events) {
- filteredQueryResults.add(((ObjectTimeEvent<QueryResult>) event)
- .getTimeObject());
- }
+ private Metadata getOrigValues(Metadata metadata, ProductType productType)
+ throws RepositoryManagerException {
+ List<TypeHandler> handlers = this.repositoryManager.getProductTypeById(
+ productType.getProductTypeId()).getHandlers();
+ if (handlers != null) {
+ for (TypeHandler handler : handlers) {
+ handler.postGetMetadataHandle(metadata);
+ }
+ }
+ return metadata;
+ }
- return filteredQueryResults;
+ private Metadata getCat
<TRUNCATED>
[6/6] oodt git commit: OODT-917 alter XMLRPC interface to support
more generic map types where suitable
Posted by ma...@apache.org.
OODT-917 alter XMLRPC interface to support more generic map types where suitable
Project: http://git-wip-us.apache.org/repos/asf/oodt/repo
Commit: http://git-wip-us.apache.org/repos/asf/oodt/commit/8705ccf4
Tree: http://git-wip-us.apache.org/repos/asf/oodt/tree/8705ccf4
Diff: http://git-wip-us.apache.org/repos/asf/oodt/diff/8705ccf4
Branch: refs/heads/master
Commit: 8705ccf404c883ddd6481a425cd688a82382ef1c
Parents: 3e0e597
Author: Tom Barber <to...@analytical-labs.com>
Authored: Wed Nov 4 12:18:49 2015 +0000
Committer: Tom Barber <to...@analytical-labs.com>
Committed: Wed Nov 4 12:18:49 2015 +0000
----------------------------------------------------------------------
.../cas/filemgr/system/XmlRpcFileManager.java | 1943 ++++++++--------
.../filemgr/system/XmlRpcFileManagerClient.java | 2168 +++++++++---------
.../cas/filemgr/util/XmlRpcStructFactory.java | 1342 +++++------
.../org/apache/oodt/cas/metadata/Metadata.java | 14 +-
4 files changed, 2691 insertions(+), 2776 deletions(-)
----------------------------------------------------------------------