http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
----------------------------------------------------------------------
diff --git 
a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java 
b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
index 5cba7d7..44ee93a 100755
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/tools/SolrIndexer.java
@@ -27,6 +27,7 @@ import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.OptionGroup;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
+import org.apache.http.impl.client.SystemDefaultHttpClient;
 import org.apache.oodt.cas.filemgr.metadata.CoreMetKeys;
 import org.apache.oodt.cas.filemgr.structs.Product;
 import org.apache.oodt.cas.filemgr.structs.ProductPage;
@@ -34,14 +35,12 @@ import org.apache.oodt.cas.filemgr.structs.ProductType;
 import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
 import org.apache.oodt.cas.filemgr.structs.exceptions.ConnectionException;
 import 
org.apache.oodt.cas.filemgr.structs.exceptions.RepositoryManagerException;
-import org.apache.oodt.cas.filemgr.system.FileManagerClient;
-import org.apache.oodt.cas.filemgr.util.RpcCommunicationFactory;
+import org.apache.oodt.cas.filemgr.system.XmlRpcFileManagerClient;
 import org.apache.oodt.cas.metadata.Metadata;
 import org.apache.oodt.cas.metadata.SerializableMetadata;
 import org.apache.oodt.cas.metadata.util.PathUtils;
-import org.apache.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
+import org.apache.solr.client.solrj.impl.HttpSolrClient;
 import org.apache.solr.common.SolrInputDocument;
 import org.springframework.util.StringUtils;
 
@@ -74,31 +73,31 @@ public class SolrIndexer {
        private final static String ACCESS_KEY = "access.key";
        private final static String ACCESS_URL = "access.url";
        private final static String PRODUCT_NAME = "CAS.ProductName";
+       private final HttpSolrClient server;
        private IndexerConfig config = null;
-       private final SolrServer server;
        private String fmUrl;
        private String solrUrl;
        private static Logger LOG = 
Logger.getLogger(SolrIndexer.class.getName());
        private final static SimpleDateFormat solrFormat = new SimpleDateFormat(
-           "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+                       "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
 
        /**
         * Constructor reads in the configuration and initiates the connection 
to the
         * Solr instance.
-        * 
+        *
         * @param solrUrl
         *          URL for the Solr instance.
         * @param fmUrl
         *          URL for the File Manager instance.
         */
        public SolrIndexer(String solrUrl, String fmUrl)
-           throws InstantiationException {
+                       throws InstantiationException {
                InputStream input = null;
                String filename;
 
                try {
                        LOG.info("System property " + SOLR_INDEXER_CONFIG + " 
set to "
-                           + System.getProperty(SOLR_INDEXER_CONFIG));
+                                       + 
System.getProperty(SOLR_INDEXER_CONFIG));
                        filename = System.getProperty(SOLR_INDEXER_CONFIG);
                        if (filename != null) {
                                LOG.info("Reading config from " + filename);
@@ -110,7 +109,7 @@ public class SolrIndexer {
                        config = new IndexerConfig(input);
                } catch (IOException e) {
                        LOG
-                           .severe("Could not read in configuration for 
indexer from classpath or file");
+                                       .severe("Could not read in 
configuration for indexer from classpath or file");
                        throw new InstantiationException(e.getMessage());
                } finally {
                        if (input != null) {
@@ -133,13 +132,10 @@ public class SolrIndexer {
                }
 
                LOG.info("Using Solr: " + this.solrUrl + " FileManager: " + 
this.fmUrl);
+               SystemDefaultHttpClient httpClient = new 
SystemDefaultHttpClient();
+               server = new HttpSolrClient(this.solrUrl, httpClient);
 
-               try {
-                       server = new CommonsHttpSolrServer(this.solrUrl);
-               } catch (MalformedURLException e) {
-                       LOG.severe("Could not connect to Solr server " + 
this.solrUrl);
-                       throw new InstantiationException(e.getMessage());
-               }
+//             server = new SolrClient(this.solrUrl);
 
        }
 
@@ -166,7 +162,7 @@ public class SolrIndexer {
 
        /**
         * This method transforms the product metadata into a Solr document.
-        * 
+        *
         * @param metadata
         *          The metadata object for the product to index.
         * @return Returns the SolrInputDocument containing product metadata.
@@ -174,6 +170,8 @@ public class SolrIndexer {
        private SolrInputDocument getSolrDocument(Metadata metadata) {
                SolrInputDocument doc = new SolrInputDocument();
                // Only grab metadata which have a mapping in the 
indexer.properties
+               String official = "";
+
                for (Object objKey : config.getMapProperties().keySet()) {
                        // The key in the metadata object
                        String key = (String) objKey;
@@ -184,19 +182,21 @@ public class SolrIndexer {
                                for (String value : values) {
                                        // Add each metadata value into the
                                        if (value != null && 
!config.getIgnoreValues().contains(value.trim())) {
-                                               LOG.fine("Adding field: " + 
fieldName + " value: " + value);
+                                               official += " Key: " + key + " 
Value: " + value;
                                                doc.addField(fieldName, value);
                                        }
                                }
                        }
                }
+               //      LOG.info("KEYS WERE:" +official);
+
                return doc;
        }
 
        /**
         * This method adds a single product extracted from a metadata file to 
the
         * Solr index.
-        * 
+        *
         * @param file
         *          The file containing product metadata.
         * @param delete
@@ -206,24 +206,24 @@ public class SolrIndexer {
         *           When an error occurs communicating with the Solr server 
instance.
         */
        public void indexMetFile(File file, boolean delete)
-           throws
-               SolrServerException {
+                       throws
+                       SolrServerException {
                LOG.info("Attempting to index product from metadata file.");
                try {
                        SerializableMetadata metadata = new 
SerializableMetadata("UTF-8", false);
                        metadata.loadMetadataFromXmlStream(new 
FileInputStream(file));
                        metadata.addMetadata("id", metadata.getMetadata("CAS."
-                           + CoreMetKeys.PRODUCT_ID));
+                                       + CoreMetKeys.PRODUCT_ID));
                        metadata.addMetadata(config.getProperty(ACCESS_KEY), 
config
-                           .getProperty(ACCESS_URL)
-                           + metadata.getMetadata("CAS." + 
CoreMetKeys.PRODUCT_ID));
+                                       .getProperty(ACCESS_URL)
+                                       + metadata.getMetadata("CAS." + 
CoreMetKeys.PRODUCT_ID));
                        if (delete) {
                                server
-                                   .deleteById(metadata.getMetadata("CAS." + 
CoreMetKeys.PRODUCT_ID));
+                                               
.deleteById(metadata.getMetadata("CAS." + CoreMetKeys.PRODUCT_ID));
                        }
                        server.add(this.getSolrDocument(metadata));
                        LOG.info("Indexed product: "
-                           + metadata.getMetadata("CAS." + 
CoreMetKeys.PRODUCT_ID));
+                                       + metadata.getMetadata("CAS." + 
CoreMetKeys.PRODUCT_ID));
                } catch (InstantiationException e) {
                        LOG.severe("Could not instantiate metadata object: " + 
e.getMessage());
                } catch (FileNotFoundException e) {
@@ -236,7 +236,7 @@ public class SolrIndexer {
        /**
         * This method indexes all product types retrieved from the File 
Manager to
         * the Solr index.
-        * 
+        *
         * @param delete
         *          Flag indicating whether each product type retrieved from 
the File
         *          Manager should be deleted from the index.
@@ -246,7 +246,8 @@ public class SolrIndexer {
        public void indexProductTypes(boolean delete) {
                LOG.info("Indexing product types...");
                try {
-                       FileManagerClient fmClient = 
RpcCommunicationFactory.createClient(new URL(this.fmUrl));
+                       XmlRpcFileManagerClient fmClient = new 
XmlRpcFileManagerClient(new URL(
+                                       this.fmUrl));
                        LOG.info("Retrieving list of product types.");
                        List<ProductType> types = fmClient.getProductTypes();
                        for (ProductType type : types) {
@@ -255,9 +256,9 @@ public class SolrIndexer {
                                        metadata.addMetadata("id", 
type.getProductTypeId());
                                        
metadata.addMetadata("CAS.ProductTypeId", type.getProductTypeId());
                                        
metadata.addMetadata("CAS.ProductTypeDescription", type
-                                           .getDescription());
+                                                       .getDescription());
                                        
metadata.addMetadata("CAS.ProductTypeRepositoryPath", type
-                                           .getProductRepositoryPath());
+                                                       
.getProductRepositoryPath());
                                        
metadata.addMetadata("CAS.ProductTypeVersioner", type.getVersioner());
                                        
metadata.addMetadata("CAS.ProductTypeName", type.getName());
                                        metadata.addMetadata("ProductType", 
"ProductType");
@@ -267,7 +268,7 @@ public class SolrIndexer {
                                                        
server.deleteById(type.getProductTypeId());
                                                } catch (Exception e) {
                                                        LOG.severe("Could not 
delete product type " + type.getName()
-                                                           + " from index: " + 
e.getMessage());
+                                                                       + " 
from index: " + e.getMessage());
                                                }
                                        }
                                        try {
@@ -276,7 +277,7 @@ public class SolrIndexer {
                                                LOG.info("Indexed product type: 
" + type.getName());
                                        } catch (Exception e) {
                                                LOG.severe("Could not index " + 
type.getName() + ": "
-                                                   + e.getMessage());
+                                                               + 
e.getMessage());
                                        }
                                } else {
                                        LOG.info("Ignoring product type: " + 
type.getName());
@@ -288,15 +289,15 @@ public class SolrIndexer {
                        LOG.severe("Could not connect to File Manager: " + 
e.getMessage());
                } catch (RepositoryManagerException e) {
                        LOG.severe("Could not retrieve product types from File 
Manager: "
-                           + e.getMessage());
+                                       + e.getMessage());
                }
                LOG.info("Finished indexing product types.");
        }
-       
+
        /**
-        * Suppresses exception that occurred with older file managers. 
+        * Suppresses exception that occurred with older file managers.
         */
-       private ProductPage safeFirstPage(FileManagerClient fmClient, 
ProductType type) {
+       private ProductPage safeFirstPage(XmlRpcFileManagerClient fmClient, 
ProductType type) {
                ProductPage page = null;
                try {
                        page = fmClient.getFirstPage(type);
@@ -310,7 +311,7 @@ public class SolrIndexer {
         * This method indexes all products retrieved from the File Manager to 
the
         * Solr index. Metadata from the product's associated ProductType is 
also
         * included.
-        * 
+        *
         * @param delete
         *          Flag indicating whether each product retrieved from the File
         *          Manager should be deleted from the index.
@@ -320,28 +321,30 @@ public class SolrIndexer {
        public void indexAll(boolean delete) {
                LOG.info("Indexing products...");
                try {
-                       FileManagerClient fmClient = 
RpcCommunicationFactory.createClient(new URL(this.fmUrl));
+                       XmlRpcFileManagerClient fmClient = new 
XmlRpcFileManagerClient(new URL(
+                                       this.fmUrl));
                        LOG.info("Retrieving list of product types.");
                        List<ProductType> types = fmClient.getProductTypes();
                        for (ProductType type : types) {
                                if 
(!config.getIgnoreTypes().contains(type.getName().trim())) {
+                                       ProductPage page = 
safeFirstPage(fmClient, type);
                                        LOG.info("Paging through products for 
product type: "
-                                           + type.getName());
-                                       ProductPage page = 
safeFirstPage(fmClient, type); 
+                                                       + type.getName()+" 
Total pages are "+page.getTotalPages());
                                        while (page != null) {
-                                           for (Product product : 
page.getPageProducts()) {
+                                               for (Product product : 
page.getPageProducts()) {
                                                        try {
-                                                               
this.indexProduct(product.getProductId(), fmClient
-                                                                   
.getMetadata(product), type.getTypeMetadata());
+                                                               String p = 
product.getProductId();
+                                                               Metadata m = 
fmClient.getMetadata(product);
+                                                               
this.indexProduct(p, m, type.getTypeMetadata());
                                                        } catch (Exception e) {
                                                                
LOG.severe("Could not index " + product.getProductId() + ": "
-                                                                   + 
e.getMessage());
+                                                                               
+ e.getLocalizedMessage());
                                                        }
                                                }
-                                           if (page.isLastPage()) {
-                                               break;
-                                           }
-                                           page = fmClient.getNextPage(type, 
page);
+                                               if (page.getPageNum() >= 
page.getTotalPages() || page.isLastPage()) {
+                                                       break;
+                                               }
+                                               page = 
fmClient.getNextPage(type, page);
                                        }
                                }
                        }
@@ -352,10 +355,10 @@ public class SolrIndexer {
                        LOG.severe("Could not connect to File Manager: " + 
e.getMessage());
                } catch (CatalogException e) {
                        LOG.severe("Could not retrieve products from File 
Manager: "
-                           + e.getMessage());
+                                       + e.getMessage());
                } catch (RepositoryManagerException e) {
                        LOG.severe("Could not retrieve product types from File 
Manager: "
-                           + e.getMessage());
+                                       + e.getMessage());
                }
        }
 
@@ -363,38 +366,50 @@ public class SolrIndexer {
         * This method adds a single product retrieved from the File Manager by 
its
         * product identifier to the Solr index. Metadata from the ProductType 
is also
         * included.
-        * 
+        *
         * @param productId
         *          The identifier of the product (CAS.ProductId).
         * @throws SolrServerException
         *           When an error occurs communicating with the Solr server 
instance.
         */
        public void indexProduct(String productId)
-           throws SolrServerException {
+                       throws SolrServerException {
                LOG.info("Attempting to index product: " + productId);
                try {
-                       FileManagerClient fmClient = 
RpcCommunicationFactory.createClient(new URL(this.fmUrl));
+                       XmlRpcFileManagerClient fmClient = new 
XmlRpcFileManagerClient(new URL(
+                                       this.fmUrl));
                        Product product = fmClient.getProductById(productId);
                        Metadata productMetadata = 
fmClient.getMetadata(product);
+                       List<String> keys = productMetadata.getAllKeys();
+                       String logger = "";
+                       for(String k :keys){
+                               logger+=" key: "+keys;
+                               List<String> values = 
productMetadata.getAllValues(k);
+
+                               for(String v : values){
+                                       logger+=" value: "+v + ", ";
+                               }
+                       }
+                       LOG.info("Metadata: "+ logger);
                        indexProduct(product.getProductId(), productMetadata, 
product
-                           .getProductType().getTypeMetadata());
+                                       .getProductType().getTypeMetadata());
                } catch (MalformedURLException e) {
                        LOG.severe("File Manager URL is malformed: " + 
e.getMessage());
                } catch (ConnectionException e) {
                        LOG.severe("Could not connect to File Manager: " + 
e.getMessage());
                } catch (CatalogException e) {
                        LOG.severe("Could not retrieve product from File 
Manager: "
-                           + e.getMessage());
+                                       + e.getMessage());
                } catch (java.text.ParseException e) {
                        LOG.severe("Could not format date: " + e.getMessage());
                }
        }
-       
+
        /**
         * This method adds a single product retrieved from the File Manager by 
its
         * product name to the Solr index. Metadata from the ProductType is also
         * included.
-        * 
+        *
         * @param productName
         *          The identifier of the product (CAS.ProductId).
         * @param delete
@@ -404,7 +419,7 @@ public class SolrIndexer {
         *           When an error occurs communicating with the Solr server 
instance.
         */
        public void indexProductByName(String productName, boolean delete) 
throws SolrServerException {
-               
+
                LOG.info("Attempting to index product: " + productName);
                try {
 
@@ -423,27 +438,28 @@ public class SolrIndexer {
                                }
                        }
 
-                       FileManagerClient fmClient = 
RpcCommunicationFactory.createClient(new URL(this.fmUrl));
+                       XmlRpcFileManagerClient fmClient = new 
XmlRpcFileManagerClient(new URL(
+                                       this.fmUrl));
                        Product product = 
fmClient.getProductByName(productName);
                        Metadata productMetadata = 
fmClient.getMetadata(product);
                        // NOTE: delete (by id) is now false
                        indexProduct(product.getProductId(), productMetadata, 
product.getProductType().getTypeMetadata());
-                       
+
                } catch (MalformedURLException e) {
                        LOG.severe("File Manager URL is malformed: " + 
e.getMessage());
                } catch (ConnectionException e) {
                        LOG.severe("Could not connect to File Manager: " + 
e.getMessage());
                } catch (CatalogException e) {
                        LOG.severe("Could not retrieve product from File 
Manager: "
-                           + e.getMessage());
+                                       + e.getMessage());
                } catch (java.text.ParseException e) {
                        LOG.severe("Could not format date: " + e.getMessage());
                }
        }
 
        private void indexProduct(String productId, Metadata productMetadata,
-           Metadata typeMetadata) throws SolrServerException,
-           java.text.ParseException {
+                                                         Metadata 
typeMetadata) throws SolrServerException,
+                       java.text.ParseException {
                Metadata metadata = new Metadata();
                metadata.addMetadata("id", productId);
                // Add in product type metadata
@@ -469,7 +485,7 @@ public class SolrIndexer {
                                server.add(this.getSolrDocument(metadata));
                                LOG.info("Indexed product: " + productId);
                        } catch (IOException e) {
-                               LOG.severe("Could not index product: " + 
productId);
+                               LOG.severe("Could not index product: " + 
productId+ "Exception:"+e.getLocalizedMessage());
                        }
                } else {
                        LOG.info("Could not find metadata for product: " + 
productId);
@@ -478,7 +494,7 @@ public class SolrIndexer {
 
        /**
         * This method deletes a single product identified by a productID from 
the Solr index
-        * 
+        *
         * @param productId
         * @throws IOException
         * @throws SolrServerException
@@ -490,7 +506,7 @@ public class SolrIndexer {
 
        /**
         * This method deletes a product(s) from the Solr index identified by a 
given name
-        * 
+        *
         * @param productName
         * @throws IOException
         * @throws SolrServerException
@@ -514,16 +530,16 @@ public class SolrIndexer {
        private void deleteProductFromIndex(String productId) throws 
IOException, SolrServerException {
                server.deleteById(productId);
        }
-       
+
        /**
         * Quick helper method to do substitution on the keys specified in the 
config
-        * 
+        *
         * @param metadata
         *          to substitute on
         * @throws java.text.ParseException
         */
        private void performSubstitution(Metadata metadata)
-           throws java.text.ParseException {
+                       throws java.text.ParseException {
                // Do metadata replacement
                for (String key : config.getReplacementKeys()) {
                        List<String> values = metadata.getAllMetadata(key);
@@ -543,10 +559,12 @@ public class SolrIndexer {
                                List<String> values = 
metadata.getAllMetadata(keyString);
                                if (values != null) {
                                        List<String> newValues = new 
ArrayList<String>();
-                                       SimpleDateFormat format = new 
SimpleDateFormat(config
-                                           
.getFormatProperties().getProperty(keyString).trim());
+
+                               /*      SimpleDateFormat format = new 
SimpleDateFormat(config
+                                           
.getFormatProperties().getProperty(keyString).trim());*/
                                        for (String value : values) {
-                                               
newValues.add(formatDate(format, value));
+                                               String d = value.trim();
+                                               newValues.add(d);
                                        }
                                        metadata.removeMetadata(keyString);
                                        metadata.addMetadata(keyString, 
newValues);
@@ -556,17 +574,17 @@ public class SolrIndexer {
        }
 
        private String formatDate(SimpleDateFormat format, String value)
-           throws java.text.ParseException {
+                       throws java.text.ParseException {
                // Ignore formating if its an ignore value
                if (config.getIgnoreValues().contains(value.trim())) {
-                 return value;
+                       return value;
                }
                return solrFormat.format(format.parse(value));
        }
 
        /**
         * This method builds the command-line options.
-        * 
+        *
         * @return Returns the supported Options.
         */
        @SuppressWarnings("static-access")
@@ -575,31 +593,31 @@ public class SolrIndexer {
 
                options.addOption(new Option("h", "help", false, "Print this 
message"));
                options.addOption(new Option("o", "optimize", false,
-                   "Optimize the Solr index"));
+                               "Optimize the Solr index"));
                options.addOption(new Option("d", "delete", false,
-                   "Delete item before indexing"));
+                               "Delete item before indexing"));
                options.addOption(OptionBuilder.withArgName("Solr URL").hasArg()
-                   .withDescription("URL to the Solr 
instance").withLongOpt("solrUrl")
-                   .create("su"));
+                               .withDescription("URL to the Solr 
instance").withLongOpt("solrUrl")
+                               .create("su"));
                options.addOption(OptionBuilder.withArgName("Filemgr 
URL").hasArg()
-                   .withDescription("URL to the File 
Manager").withLongOpt("fmUrl")
-                   .create("fmu"));
+                               .withDescription("URL to the File 
Manager").withLongOpt("fmUrl")
+                               .create("fmu"));
 
                OptionGroup group = new OptionGroup();
                Option all = new Option("a", "all", false,
-                   "Index all products from the File Manager");
+                               "Index all products from the File Manager");
                Option product = OptionBuilder.withArgName("productId").hasArg()
-                   .withDescription("Index the product from the File Manager")
-                   .withLongOpt("product").create("p");
+                               .withDescription("Index the product from the 
File Manager")
+                               .withLongOpt("product").create("p");
                Option met = 
OptionBuilder.withArgName("file").hasArg().withDescription(
-                   "Index the product from a metadata 
file").withLongOpt("metFile")
-                   .create("mf");
+                               "Index the product from a metadata 
file").withLongOpt("metFile")
+                               .create("mf");
                Option read = new Option("r", "read", false,
-                   "Index all products based on a list of product identifiers 
passed in");
+                               "Index all products based on a list of product 
identifiers passed in");
                Option types = new Option("t", "types", false,
-                   "Index all product types from the File Manager");
+                               "Index all product types from the File 
Manager");
                Option deleteAll = new Option("da", "deleteAll", false,
-                   "Delete all products/types from the Solr index");
+                               "Delete all products/types from the Solr 
index");
 
                group.addOption(all);
                group.addOption(product);
@@ -614,7 +632,7 @@ public class SolrIndexer {
 
        /**
         * The main method. Execution without argument displays help message.
-        * 
+        *
         * @param args
         *          Command-line arguments.
         */
@@ -633,8 +651,8 @@ public class SolrIndexer {
                        HelpFormatter formatter = new HelpFormatter();
                        formatter.printHelp("java " + 
SolrIndexer.class.getName(), options);
                } else if (line.hasOption("all") || line.hasOption("product")
-                   || line.hasOption("metFile") || line.hasOption("read")
-                   || line.hasOption("types") || line.hasOption("deleteAll")) {
+                               || line.hasOption("metFile") || 
line.hasOption("read")
+                               || line.hasOption("types") || 
line.hasOption("deleteAll")) {
                        SolrIndexer indexer;
                        String solrUrl = null;
                        String fmUrl = null;
@@ -652,7 +670,7 @@ public class SolrIndexer {
                                        
indexer.indexProduct(line.getOptionValue("product"));
                                } else if (line.hasOption("metFile")) {
                                        indexer.indexMetFile(new 
File(line.getOptionValue("metFile")), line
-                                           .hasOption("delete"));
+                                                       .hasOption("delete"));
                                } else if (line.hasOption("read")) {
                                        for (String productId : 
readProductIdsFromStdin()) {
                                                indexer.indexProduct(productId);
@@ -671,14 +689,14 @@ public class SolrIndexer {
                        } catch (Exception e) {
                                LOG.severe("An error occurred indexing: " + 
e.getMessage());
                                LOG
-                                   .severe("If the above message is related to 
accessing the Solr instance, see the Application Server's log for additional 
information.");
+                                               .severe("If the above message 
is related to accessing the Solr instance, see the Application Server's log for 
additional information.");
                        }
                }
        }
 
        /**
         * This method reads product identifiers from the standard input.
-        * 
+        *
         * @return Returns a List of product identifiers.
         */
        private static List<String> readProductIdsFromStdin() {
@@ -694,12 +712,12 @@ public class SolrIndexer {
                        }
                } catch (IOException e) {
                        LOG.severe("Error reading product id: line: [" + line + 
"]: Message: "
-                           + e.getMessage());
+                                       + e.getMessage());
                } finally {
-                 try {
-              br.close();
-          } catch (Exception ignore) {
-          }
+                       try {
+                               br.close();
+                       } catch (Exception ignore) {
+                       }
                }
                return productIds;
        }
@@ -731,32 +749,32 @@ public class SolrIndexer {
                                String key = (String) objKey;
                                if (key.startsWith(PREFIX_CONFIG)) {
                                        
properties.put(key.substring(PREFIX_CONFIG.length()), props
-                                           .getProperty(key));
+                                                       .getProperty(key));
                                } else if (key.startsWith(PREFIX_MET)) {
                                        
mapProperties.put(key.substring(PREFIX_MET.length()), props
-                                           .getProperty(key));
+                                                       .getProperty(key));
                                } else if (key.startsWith(PREFIX_FORMAT)) {
                                        
formatProperties.put(key.substring(PREFIX_FORMAT.length()), props
-                                           .getProperty(key));
+                                                       .getProperty(key));
                                }
                        }
 
                        if (properties.getProperty(IGNORE_TYPES) != null) {
                                String[] values = 
properties.getProperty(IGNORE_TYPES).trim()
-                                   .split(",");
-                         Collections.addAll(ignoreTypes, values);
+                                               .split(",");
+                               Collections.addAll(ignoreTypes, values);
                        }
 
                        if (properties.getProperty(IGNORE_VALUES) != null) {
                                String[] values = 
properties.getProperty(IGNORE_VALUES).trim().split(
-                                   ",");
-                         Collections.addAll(ignoreValues, values);
+                                               ",");
+                               Collections.addAll(ignoreValues, values);
                        }
 
                        if (properties.getProperty(REPLACEMENT_KEYS) != null) {
                                String[] values = 
properties.getProperty(REPLACEMENT_KEYS).trim()
-                                   .split(",");
-                         Collections.addAll(replacementKeys, values);
+                                               .split(",");
+                               Collections.addAll(replacementKeys, values);
                        }
                }
 

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/profile/pom.xml
----------------------------------------------------------------------
diff --git a/profile/pom.xml b/profile/pom.xml
index 3d67496..68f8fa9 100644
--- a/profile/pom.xml
+++ b/profile/pom.xml
@@ -62,9 +62,8 @@
       <version>1.3</version>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-      <version>3.0-alpha1</version>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-logging</groupId>

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/protocol/http/pom.xml
----------------------------------------------------------------------
diff --git a/protocol/http/pom.xml b/protocol/http/pom.xml
index 4aaf834..19b5685 100644
--- a/protocol/http/pom.xml
+++ b/protocol/http/pom.xml
@@ -41,8 +41,8 @@
   -->
   <dependencies>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
     </dependency>
     <dependency>
       <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/resource/pom.xml
----------------------------------------------------------------------
diff --git a/resource/pom.xml b/resource/pom.xml
index 6ccb724..3e1bc8e 100644
--- a/resource/pom.xml
+++ b/resource/pom.xml
@@ -73,8 +73,8 @@ the License.
       <artifactId>commons-dbcp</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/sso/pom.xml
----------------------------------------------------------------------
diff --git a/sso/pom.xml b/sso/pom.xml
index cdb59a2..82979ec 100644
--- a/sso/pom.xml
+++ b/sso/pom.xml
@@ -53,9 +53,8 @@ the License.
       <version>1.3</version>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-      <version>3.0</version>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/sso/src/main/java/org/apache/oodt/security/sso/opensso/SSOProxy.java
----------------------------------------------------------------------
diff --git 
a/sso/src/main/java/org/apache/oodt/security/sso/opensso/SSOProxy.java 
b/sso/src/main/java/org/apache/oodt/security/sso/opensso/SSOProxy.java
index 5d77083..d0d399f 100755
--- a/sso/src/main/java/org/apache/oodt/security/sso/opensso/SSOProxy.java
+++ b/sso/src/main/java/org/apache/oodt/security/sso/opensso/SSOProxy.java
@@ -18,30 +18,37 @@
 package org.apache.oodt.security.sso.opensso;
 
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.methods.PostMethod;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
+
+import org.apache.http.HttpException;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
- * 
+ *
  * A client class to the services provided by the <a
  * href="https://opensso.dev.java.net/";>OpenSSO</a> project. The descriptions 
of
  * these services are <a
  * href="http://developers.sun.com/identity/reference/techart/id-svcs.html";
  * >here</a>.
- * 
+ *
  * @author mattmann
  * @version $Revision$
- * 
+ *
  */
 public class SSOProxy implements SSOMetKeys {
 
@@ -54,53 +61,63 @@ public class SSOProxy implements SSOMetKeys {
   private static final String IDENT_ATTR_ENDPOINT_KEY = "IDENT_ATTR_ENDPOINT";
   private static final String LOG_ENDPOINT;
   private static final String LOG_ENDPOINT_KEY = "LOG_ENDPOINT";
-  
+
   static {
-         if (System.getProperty(AUTH_ENDPOINT_KEY) != null) {
-                 AUTH_ENDPOINT = System.getProperty(AUTH_ENDPOINT_KEY);
-         } else {
-                 AUTH_ENDPOINT = AUTHENTICATE_ENDPOINT;
-         }
-         if (System.getProperty(IDENT_READ_ENDPOINT_KEY) != null) {
-                 IDENT_READ_ENDPOINT = 
System.getProperty(IDENT_READ_ENDPOINT_KEY);
-         } else {
-                 IDENT_READ_ENDPOINT = IDENTITY_READ_ENDPOINT;
-         }
-         if (System.getProperty(IDENT_ATTR_ENDPOINT_KEY) != null) {
-                 IDENT_ATTR_ENDPOINT = 
System.getProperty(IDENT_ATTR_ENDPOINT_KEY);
-         } else {
-                 IDENT_ATTR_ENDPOINT = IDENTITY_ATTRIBUTES_ENDPOINT;
-         }
-         if (System.getProperty(LOG_ENDPOINT_KEY) != null) {
-                 LOG_ENDPOINT = System.getProperty(LOG_ENDPOINT_KEY);
-         } else {
-                 LOG_ENDPOINT = LOGOUT_ENDPOINT;
-         }
-
-         LOG.log(Level.INFO, AUTH_ENDPOINT_KEY + " set to " + AUTH_ENDPOINT);
-         LOG.log(Level.INFO, IDENT_READ_ENDPOINT_KEY + " set to " + 
IDENT_READ_ENDPOINT);
-         LOG.log(Level.INFO, IDENT_ATTR_ENDPOINT_KEY + " set to " + 
IDENT_ATTR_ENDPOINT);
-         LOG.log(Level.INFO, LOG_ENDPOINT_KEY + " set to " + LOG_ENDPOINT);
+    if (System.getProperty(AUTH_ENDPOINT_KEY) != null) {
+      AUTH_ENDPOINT = System.getProperty(AUTH_ENDPOINT_KEY);
+    } else {
+      AUTH_ENDPOINT = AUTHENTICATE_ENDPOINT;
+    }
+    if (System.getProperty(IDENT_READ_ENDPOINT_KEY) != null) {
+      IDENT_READ_ENDPOINT = System.getProperty(IDENT_READ_ENDPOINT_KEY);
+    } else {
+      IDENT_READ_ENDPOINT = IDENTITY_READ_ENDPOINT;
+    }
+    if (System.getProperty(IDENT_ATTR_ENDPOINT_KEY) != null) {
+      IDENT_ATTR_ENDPOINT = System.getProperty(IDENT_ATTR_ENDPOINT_KEY);
+    } else {
+      IDENT_ATTR_ENDPOINT = IDENTITY_ATTRIBUTES_ENDPOINT;
+    }
+    if (System.getProperty(LOG_ENDPOINT_KEY) != null) {
+      LOG_ENDPOINT = System.getProperty(LOG_ENDPOINT_KEY);
+    } else {
+      LOG_ENDPOINT = LOGOUT_ENDPOINT;
+    }
+
+    LOG.log(Level.INFO, AUTH_ENDPOINT_KEY + " set to " + AUTH_ENDPOINT);
+    LOG.log(Level.INFO, IDENT_READ_ENDPOINT_KEY + " set to " + 
IDENT_READ_ENDPOINT);
+    LOG.log(Level.INFO, IDENT_ATTR_ENDPOINT_KEY + " set to " + 
IDENT_ATTR_ENDPOINT);
+    LOG.log(Level.INFO, LOG_ENDPOINT_KEY + " set to " + LOG_ENDPOINT);
   }
 
   public String authenticate(String username, String password) {
-    HttpClient httpClient = new HttpClient();
-    PostMethod post = new PostMethod(AUTH_ENDPOINT);
+    HttpClient httpClient = new DefaultHttpClient();
+    HttpPost post = new HttpPost(AUTH_ENDPOINT);
+    //PostMethod post = new PostMethod(AUTH_ENDPOINT);
     String response;
     String ssoToken = null;
 
-    NameValuePair[] data = { new NameValuePair("username", username),
-        new NameValuePair("password", password),
-        new NameValuePair("uri", "realm/lmmp") };
+    NameValuePair[] data = { new BasicNameValuePair("username", username),
+            new BasicNameValuePair("password", password),
+            new BasicNameValuePair("uri", "realm/lmmp") };
 
-    post.setRequestBody(data);
+    UrlEncodedFormEntity entity = null;
+    try {
+      entity = new UrlEncodedFormEntity(Arrays.asList(data), "UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      e.printStackTrace();
+    }
+
+    post.setEntity(entity);
 
     try {
-      httpClient.executeMethod(post);
-      if (post.getStatusCode() != HttpStatus.SC_OK) {
-        throw new HttpException(post.getStatusLine().toString());
+      HttpResponse response1 = httpClient.execute(post);
+      if (response1.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
+        throw new HttpException(response1.getStatusLine().toString());
       }
-      response = post.getResponseBodyAsString().trim();
+      ResponseHandler<String> handler = new BasicResponseHandler();
+
+      response = handler.handleResponse(response1);
       ssoToken = response.substring(9);
     } catch (Exception e) {
       LOG.log(Level.SEVERE, e.getMessage());
@@ -112,56 +129,85 @@ public class SSOProxy implements SSOMetKeys {
   }
 
   public IdentityDetails readIdentity(String username, String token)
-      throws IOException, SingleSignOnException {
-    HttpClient httpClient = new HttpClient();
-    PostMethod post = new PostMethod(IDENT_READ_ENDPOINT);
+          throws IOException, SingleSignOnException {
+    HttpClient httpClient = new DefaultHttpClient();
+    HttpPost post = new HttpPost(IDENT_READ_ENDPOINT);
     LOG.log(Level.INFO, "Obtaining identity: username: [" + username
-        + "]: token: [" + token + "]: REST url: [" + IDENT_READ_ENDPOINT
-        + "]");
-    NameValuePair[] data = { new NameValuePair("name", username),
-        new NameValuePair("admin", token) };
+            + "]: token: [" + token + "]: REST url: [" + IDENT_READ_ENDPOINT
+            + "]");
+    NameValuePair[] data = { new BasicNameValuePair("name", username),
+            new BasicNameValuePair("admin", token) };
 
-    post.setRequestBody(data);
+    UrlEncodedFormEntity entity = null;
+    try {
+      entity = new UrlEncodedFormEntity(Arrays.asList(data), "UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      e.printStackTrace();
+    }
+
+    post.setEntity(entity);
 
-    httpClient.executeMethod(post);
-    if (post.getStatusCode() != HttpStatus.SC_OK) {
-      throw new SingleSignOnException(post.getStatusLine().toString());
+    HttpResponse response1 = httpClient.execute(post);
+    if (response1.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
+      throw new SingleSignOnException(response1.getStatusLine().toString());
     }
 
-    return parseIdentityDetails(post.getResponseBodyAsString().trim());
+    ResponseHandler<String> handler = new BasicResponseHandler();
+
+
+    return parseIdentityDetails(handler.handleResponse(response1).trim());
 
   }
 
   public UserDetails getUserAttributes(String token) throws IOException, 
SingleSignOnException {
-    HttpClient httpClient = new HttpClient();
-    PostMethod post = new PostMethod(IDENT_ATTR_ENDPOINT);
+    HttpClient httpClient = new DefaultHttpClient();
+    HttpPost post = new HttpPost(IDENT_READ_ENDPOINT);
     LOG.log(Level.INFO, "Obtaining user attributes: token: [" + token
-        + "]: REST url: [" + IDENT_ATTR_ENDPOINT + "]");
-    NameValuePair[] data = { new NameValuePair("subjectid", token) };
+            + "]: REST url: [" + IDENT_ATTR_ENDPOINT + "]");
+    NameValuePair[] data = { new BasicNameValuePair("subjectid", token) };
+
+    UrlEncodedFormEntity entity = null;
+    try {
+      entity = new UrlEncodedFormEntity(Arrays.asList(data), "UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      e.printStackTrace();
+    }
 
-    post.setRequestBody(data);
+    post.setEntity(entity);
 
-    httpClient.executeMethod(post);
-    if (post.getStatusCode() != HttpStatus.SC_OK) {
-      throw new SingleSignOnException(post.getStatusLine().toString());
+    HttpResponse response1 = httpClient.execute(post);
+    if (response1.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
+      throw new SingleSignOnException(response1.getStatusLine().toString());
     }
 
-    return parseUserDetails(post.getResponseBodyAsString().trim());
+    ResponseHandler<String> handler = new BasicResponseHandler();
+
+
+    return parseUserDetails(handler.handleResponse(response1).trim());
 
   }
 
   public void logout(String token) {
-    HttpClient httpClient = new HttpClient();
-    PostMethod post = new PostMethod(LOG_ENDPOINT);
+    HttpClient httpClient = new DefaultHttpClient();
+    HttpPost post = new HttpPost(LOG_ENDPOINT);
     LOG.log(Level.INFO, "Logging out: token: [" + token + "]: REST url: ["
-        + LOG_ENDPOINT + "]");
-    NameValuePair[] data = { new NameValuePair("subjectid", token) };
-    post.setRequestBody(data);
+            + LOG_ENDPOINT + "]");
+    NameValuePair[] data = { new BasicNameValuePair("subjectid", token) };
+
+
+    UrlEncodedFormEntity entity = null;
+    try {
+      entity = new UrlEncodedFormEntity(Arrays.asList(data), "UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      e.printStackTrace();
+    }
+
+    post.setEntity(entity);
 
     try {
-      httpClient.executeMethod(post);
-      if (post.getStatusCode() != HttpStatus.SC_OK) {
-        throw new HttpException(post.getStatusLine().toString());
+      HttpResponse response1 = httpClient.execute(post);
+      if (response1.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
+        throw new HttpException(response1.getStatusLine().toString());
       }
     } catch (HttpException e) {
       // TODO Auto-generated catch block
@@ -176,7 +222,7 @@ public class SSOProxy implements SSOMetKeys {
 
   private IdentityDetails parseIdentityDetails(String serviceResponse) {
     ByteArrayInputStream is = new ByteArrayInputStream(serviceResponse
-        .getBytes());
+            .getBytes());
     BufferedReader br = new BufferedReader(new InputStreamReader(is));
     IdentityDetails details = new IdentityDetails();
     String line = null, lastAttrKeyRead = null;
@@ -214,7 +260,7 @@ public class SSOProxy implements SSOMetKeys {
     } catch (IOException e) {
       LOG.log(Level.SEVERE, e.getMessage());
       LOG.log(Level.WARNING, "Error reading service response line: [" + line
-          + "]: Message: " + e.getMessage());
+              + "]: Message: " + e.getMessage());
     } finally {
       try {
         is.close();
@@ -233,7 +279,7 @@ public class SSOProxy implements SSOMetKeys {
 
   private UserDetails parseUserDetails(String serviceResponse) {
     ByteArrayInputStream is = new ByteArrayInputStream(serviceResponse
-        .getBytes());
+            .getBytes());
     BufferedReader br = new BufferedReader(new InputStreamReader(is));
     UserDetails details = new UserDetails();
     String line = null, lastAttrKeyRead = null;
@@ -264,7 +310,7 @@ public class SSOProxy implements SSOMetKeys {
     } catch (IOException e) {
       LOG.log(Level.SEVERE, e.getMessage());
       LOG.log(Level.WARNING, "Error reading service response line: [" + line
-          + "]: Message: " + e.getMessage());
+              + "]: Message: " + e.getMessage());
     } finally {
       try {
         is.close();
@@ -283,8 +329,8 @@ public class SSOProxy implements SSOMetKeys {
 
   public static void main(String[] args) throws IOException, 
SingleSignOnException {
     String usage = "SSOProxy <cmd> [args]\n\n" + "Where cmd is one of:\n"
-        + "authenticate <user> <pass>\n" + "identity <user> <token>\n"
-        + "attributes <token>\nlogout <token>\n";
+            + "authenticate <user> <pass>\n" + "identity <user> <token>\n"
+            + "attributes <token>\nlogout <token>\n";
 
     if (args.length < 2 || args.length > 3) {
       System.err.println(usage);

http://git-wip-us.apache.org/repos/asf/oodt/blob/78ce45e2/workflow/pom.xml
----------------------------------------------------------------------
diff --git a/workflow/pom.xml b/workflow/pom.xml
index 72fb549..1fe5189 100644
--- a/workflow/pom.xml
+++ b/workflow/pom.xml
@@ -76,8 +76,8 @@ the License.
       <artifactId>commons-dbcp</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
     </dependency>
     <dependency>
       <groupId>commons-io</groupId>

Reply via email to