<commit_before>Apache OODT Change Log
======================

Release 0.6 - Current Development
--------------------------------------------

* OODT-572 Replace mkdir with more multi-thread resilient forceMkdir in 
  LocalDataTransferer (Tom Barber via mattmann)

* OODT-559 Unit test failure in testDoDynamicReplacement for "Europe/London" 
  timezone (Tom Barber via mattmann)

* OODT-615 Fixed bug in SolrCatalog that would throw exception if no matching products are found
           (luca)

* OODT-408 Drop Spring logging levels from WARNING to SEVERE (<NAME>
  via mattmann, bfoster)

* OODT-607 SciPgeWriter that is a simple MetKey template replacer (mattmann)

* OODT-606 SciPgeWriter that uses ApacheVelocity (mattmann, pramirez)

* OODT-592 Provide Solr-based implementation of CAS File Manager (luca)

* OODT-590 modify pcs references in opsui webapp (riverma)

* OODT-589 add pcs_home env variable to env script (riverma)

* OODT-586 RADiX archetype does not properly deploy crawler (riverma)

* OODT-603 Enable Resource Manager start/stop within RADiX (riverma)

* OODT-600 Modularize old OPSUI theme into a separate Wicket "skin" (riverma)

* OODT-599 Modularize new theme into a stand-alone Wicket "skin" (riverma)

* OODT-597 Improve theme/styling of OPSUI (riverma)

* OODT-596 Fix opsui webapp's wicket 'Page Expired' error (riverma)

* OODT-595 Improve styling of Workflow Viewer (webapp/components) (riverma)

* OODT-602 Load not settable for WorkflowTaskJobs in 
  IterativeWorkflowProcessThread (mattmann)

* OODT-470 Enabled RSSProductTransferServlet to be configured using an XML
  configuration file (rlaidlaw)

* OODT-560 XmlStructFactory::getProductTypeMapXmlDocument does not 
  output virtual product types (<NAME> via mattmann)

* OODT-583 Added JUnit test class for RSSConfigReader (rlaidlaw)

* OODT-582 Fix for oodt.cas.product.rss.RSSConfigReader.readTags() for detection
  of source attribute for tags defined in the RSS configuration file (rlaidlaw)

* OODT-576 Used try...finally in oodt.commons.database.SqlScript.loadScript() to
  close BufferedReader (rlaidlaw)

* OODT-537 Push/Pull NullPointerException on startup (mattmann, joyce)

* OODT-578 Workflow Monitor experiences runtime exception (NPE) out 
  of the box with RADIX (Arni Sumarlidason via mattmann)

* OODT-575 Metadata extractor for parsing filename based on regex 
  (N<NAME>ung via mattmann)

* OODT-573 Refactored the return statement in the getTopNProducts method in the
  LuceneCatalog class (rlaidlaw)

* OODT-571 Updated assignments in setWorkflowInst and setWaitforConditionSatisfy
  methods in IterativeWorkflowProcessorThread class (rlaidlaw)

* OODT-574 RADiX POM Parent References (Arni Sumarlidason via mattmann)

* OODT-491 Add nextState (determineNextState) function to 
  WorkflowProcessor (mattmann)

* OODT-558 Introducing optional web-grid servlet init parameter "org.apache.oodt.grid.GridServlet.config" 
 that can be used to read/write its configuration to a location external to the web app directory (luca).

* OODT-564 XMLPS should provided ordered results based on 
  requested fields (mattmann, joyce)

* OODT-369 Building with Maven3 (mattmann, Adam Estrada)

* OODT-555, OODT-557 - Changed behavior of Lucene Catalog update methods to retrieve a product from the index to the cache, 
  instead of failing if it is not found in the cache. At the same time, simplify the Curator updateMetadata() method to just update
  the metadata, without removing and re-inserting the product before that.
  (luca, rishi, mattmann)

* OODT-553 Update org.apache.oodt.commons.exec.EnvUtilities to Use System.getEnvironment 
  (<NAME> via mattmann)

* OODT-551 Insert primary key in metadata table for database-based File Manager, to always return metadata values in proper order
           (luca, mattmann, bfoster)

* OODT-548 Be more resilient to table definitions matching the master table 
  in the Mapping config file (mattmann,joyce)

* OODT-546 XMLPS inner-joins default table with itself (mattmann,joyce)

* OODT-547 Switch newest Curator upudate metadata method to use XML-RPC FileManager client.
           Switch other Curator update metadata method to use shared instance of Catalog Factory 
           to minimize use of resources.
           (luca)


Release 0.5 
--------------------------------------------
Release Date: December 18, 2012

* OODT-541 Implement a LenientDataSourceCatalog that allows for dynamically named
  metadata fields, effectively bypassing the validation layer.
  (luca)

* OODT-544 Implement a DataSourceCatalog back-end to the CAS FileManager 
  where the "product_id" column is of type string.
  (luca)

* OODT-545 Allow Curator web app to use a configurable CAS Catalog Factory 
  as specified in curator.xml.
  (luca)

* OODT-543 Update ExpImpCatalog tool to allow core Metadata to pass through 
  when Embedded Catalogs are used (mattmann, cinquini)

* OODT-542 Need to update logging.properties for all servers post CAS CLI
  (mattmann)

* OODT-535 Provide capability to remove metadata tags through Curator 
  web app. (luca)

* OODT-533 Allow SolrIndexer to query and ingest products from the File 
  Manager catalog by name. (luca)

* OODT-534 Better error message when a product is looked by id in the catalog 
  and not found. (luca)
                      
* OODT-529 Allow Lucene Catalog to be "lenient" with respect to XML validation,
  i.e. allow handling of dynamically named fields if the "lenient" flag is set 
  (defaults to false). (luca)

* OODT-530 Bug fix: crawler MetExtractorProductCrawler had a list of precondition 
  beans that was not initialized to an empty list, with would cause a Spring 
  initialization exception when more than one preconditions was injected. (luca)
           
* OODT-531 Bug fix: the legacy Spring configuration file legacy-cmd-line-options.xml 
  was missing some required configuration for the beans "noRecur" and "crawlForDirs".
  (luca)
           
* OODT-532 Bug fix: pre-condition bean "AprioriUniquessCheckWithFilemgr" was missing 
 the filemgrUrl property, which was therefore never set at initialization. (luca)

* OODT-522 Provided additional Curator REST endpoint: "/metadata/update" that updated 
  product metadata in place, i.e. preserves all existing catalog metadata (luca)

* OODT-523 Updated Curator CXF dependency to 2.6.0 and removed FIXME patch to 
  extract "id" from "/metadata/catalog" request (luca)

* OODT-528 Merged back changed to CuratorLuceneCatalog into File Manager LuceneCatalog,
  and change Curator to use mainstream File Manager Lucene Catalog (luca)

* OODT-272 Enable Removal of Finished Ingestion Tasks
  (<NAME> via mattmann)

* OODT-328 Remove jpl.nasa.gov references from code 
  (<NAME> via mattmann)

* OODT-520 Default Crawler launcher doesn't reference FileManager 
  properties (<NAME>ce via mattmann)

* OODT-502: Support pre and post conditions in Workflow Processor 
  Queue (mattmann)

* OODT-516: Add WorkflowLifecycle tests that check pctComplete for 
  wengine and w1 style lifecycles (mattmann)

* OODT-501: Method to create Processor from Instance should be based on 
  Graph structure (mattmann)

* OODT-511: Solr Indexer Date Formatting Removes Metadata (pramirez)

* OODT-510: SolrIndexer fails on ProductTypes that have 0 products (pramirez, ahart)

* OODT-496: Convert EngineRunner interface to take TaskProcessor (mattmann)

* OODT-505: Remove synchronous Runner (mattmann)

* OODT-498: Overwrite and bring back 0.3 ThreadPoolWorkflowEngine plus 
  patches (mattmann)

* OODT-500: Rename property for max threads in AsyncLocalEngineRunner (mattmann)

* OODT-497: Make WorkflowProcessor PrioritySorters thread-safe (mattmann)

* OODT-492: Refactor Workflow Instance repo to store/retrieve that state 
  information (mattmann)

* OODT-490: Refactor WorkflowProcessor to push all of its state information 
  into Workflow Instance (mattmann)

* OODT-432: Add FileSize to know metadata fields set by CAS-Crawler 
  (bfoster via mattmann)

* OODT-381: Create Runner framework to allow flexible WorkflowTask 
  execution on different runtimes (mattmann, bfoster)

* OODT-215: Workflow2 Architecture (mattmann, bfoster, sherylj)

* OODT-310: Port WEngine to trunk (mattmann, bfoster, sherylj)

* OODT-487: MetadataBasedProductMover to handle when the source and destinations match (cgoodale)

* OODT-488: Enhanced Solr Indexer capabilities (pramirez)

* OODT-390: Removal of optimize call in Lucene Workflow Instance Repository (pramirez)

* OODT-486: WorkflowInstance tries to cast null strings into dates causing
  exceptions on getters/setters (mattmann)

* OODT-483: Fix to prevent NumberFormatException in XmlRpcStructFactory (rlaidlaw)

* OODT-471: Added namespace definitions to RSS config files for CAS REST API (rlaidlaw)

* OODT-469: Modified RSSProductServlet to remove hard-coded namespaces and allow 
configurable namespaces via RSS config files (rlaidlaw)

* OODT-485: Factory out EngineRunner and WorkflowProcessor classes into their own packages (bfoster)

* OODT-481: CAS-Pushpull uniqueMetadataElement is being loaded as empty String instead of null (bfoster)

* OODT-474: Fixed the probem having in a configuration file 
  ProtocolFactoryInfo.xml (mattmann, YunHee Kang)

* OODT-478: Balance: New hook for hooks.php (nhidalgo via ahart)

* OODT-476: RemoteSiteFile doesn't always set RemoteSite (bfoster)

* OODT-477: CommonsNetFtpProtocol throws exception on successful download (bfoster)

* OODT-329: OODT PEAR Channel (Gavin McDonald via mattmann)

* OODT-472: Puny Module - Return to previous page once the user is done editing  (skhudiky)

* OODT-467: Change SciPgeConfigFileWriter to DynamicConfigFileWriter (bfoster)

* OODT-464: Add file staging support to CAS-PGE's XmlFilePgeConfigBuilder (bfoster)

Release 0.4
--------------------------------------------
Release Date: June 13th, 2012

* OODT-446 Addition of Puny module to Balance (skhudiky)

* OODT-462: Include support for special processing instructions in opendap-ps configuration file (luca)

* OODT-463: Ignore container-type DAS attributes when parsing metadata in opendap-ps module (luca)

* OODT-402: Provided default File Manager policy and RSS configuration for 
products with location metadata.  See subtasks OODT-449, 452 and 453. (rlaidlaw)

* OODT-449: Added default GeoRSS configuration file for the CAS REST RSS service. (rlaidlaw)

* OODT-452: Moved File Manager policy files for GenericFile type (elements.xml, product-types.xml, 
product-type-element-map.xml) to filemgr/src/main/resources/examples/core subdirectory.  
Updated six unit tests to use the new subdirectory. (rlaidlaw)

* OODT-453: Added File Manager policy files for simple LocationAwareProduct
(elements.xml, product-types.xml, product-type-element-map.xml). (rlaidlaw)

* OODT-457: add missing Datatables images for paging through Cas-browser index page (skhudiky)

* OODT-455 Small CSS tweak for the OPSUI Wicket App (cgoodale)

* OODT-451 Implemented CAS metadata precondition class to check for existence of given marker file
           within product directory (luca)

* OODT-445 Extend env replace support introduced in OODT-343 (ahart)

* OODT-444 Utils class missing from Balance cas-browser module (ahart)

* OODT-448 added missing character (skhudiky)

* OODT-447 changed reference to CAS-SSO directory in the profile management module README.txt (skhudiky)

* OODT-450 Crawler being able to delete a non-empty product directory
  upon successful product ingestion (luca)

* OODT-421 Make WorkflowLifecycleManager understand 
  WorkflowStates (mattmann)

* OODT-440 Replace legacy getMetadata("UUID") calls with 
  getMetadata("CAS." + CoreMetKeys.PRODUCT_ID) (thomas)

* OODT-442 Apache project branding requirements: DOAP
  file [PATCH] (<NAME> via mattmann)

* OODT-438 Make CAS-Crawlers MimeExtractorConfigReader relative file paths be relative to its
   XML file (bfoster)
 
* OODT-426 Introduce a CAS-Metadata based renaming interface (bfoster)

* OODT-435 Refactor Graph and ParentChildWorkflow class 
  outside of PackagedWorkflowRepository (mattmann)

* OODT-157 PCS Operator User Interface web application  
  (mattmann, ahart, cgoodale, pramirez)

* OODT-401 added profile management module to balance modules directory (skhudiky)
  
* OODT-433 Fix retrieveFileByName and retrieveFileById buy setting the product's references 
  before calling retrieveProduct (thomas)

* OODT-430 Update all boolean type bean properties in the crawler cmd-line-options.xml (thomas)

* OODT-412 Bugfix: MoveMetadataToFailureDir should read MoveMetadataFileToFailureDir (thomas)

* OODT-428 CrawlerBeansPropHandler doesn't set list properties for Spring
  PropertyOverrideConfigurer correctly (bfoster)

* OODT-429 filemgr query throws NPE when sorting by key with possibly empty values (rickdn)

* OODT-427 filemgr query throws "String index out of range: -1" when some products have undefined
  metadata values (rickdn)

* OODT-405 Introduced new syntax for environment variable replacement in opendapps module (luca)

* OODT-425 CAS-PGE logger unit-test fails because it sometimes finds logger lock file (bfoster)

* OODT-422 Allow for CAS-PGE PgeMetadata to be dumped to an xml
  file after initialization (bfoster)

* OODT-410 DataSourceCatalog compatible with HypersonicSQL 
  (mattmann,rickdn,bfoster,pramirez)

* OODT-413 filemgr query throws NPE when some products have undefined metadata values (rickdn)

* OODT-420 CAS-PGE should fail when product ingests fail (bfoster)

* OODT-419 Make PgeConfigBuilder configuration via PgeTaskMetKeys (bfoster)

* OODT-418 Improve CAS-PGE logging (bfoster)

* OODT-71 Add lifecycle model supporting transition, done 
  and waiting states (mattmann)

* OODT-414 Create Java Logger Handler for CAS-PGE (bfoster)

* OODT-415 Add support to ExecUtils callProgram to take OutputStreams
  for forwarding stdout and stderr (bfoster)

* OODT-249 When a node is removed from the Resource Management 
  system, it should be removed from all of its queues as well (gabe via mattmann)

* OODT-376 Addition of Cas-Browser Balance module (gabe)

* OODT-411 Port CAS-PGE's PcsMetadataKeys to PgeTaskMetKeys (bfoster)

* OODT-409 Convert CAS-PGE metadata keys and workflow statuses from static Strings to enums (bfoster)

* OODT-406 Add CAS-PGE support for multiple Property Adders (bfoster)

* OODT-403 Port wengine ControlMetadata to cas-pge's PgeMetadata (bfoster)

* OODT-34 Ability for File Manager to stage an ingested Product to one of its clients (bfoster)

* OODT-400 Add options for CAS-Crawler's SendNotification CrawlerAction (bfoster)

* OODT-399 cas-cli sub-option requirements for help printing was not
  using p:required for GroupSubOption (bfoster)
 
* OODT-395 SerializableMetadata.toXml() doesn't set namespace on root element (rickdn)

* OODT-361 Workflow test event fails with NPE (rickdn)

* OODT-373 PCS OpsUI component not listed in OODT pom.xml (ahart)

* OODT-397 XmlRpcWorkflowManager tests don't properly clean up 
  LuceneCatalog remnants (mattmann)

* OODT-396 Add shutdown hook to the Workflow Manager server (mattmann)

* OODT-394 Integrate CAS-Protocol with CAS-CLI (bfoster)

* OODT-392 Remove old command line option code from commons (bfoster)

* OODT-391 Integrate CAS-Catalog with CAS-CLI (bfoster)

* OODT-352 Integrate CAS-CLI into CAS-Crawler (bfoster)

* OODT-389 Lucene Workflow Instance Repository index now intialized on startup (pramirez)

* OODT-382 Lucene FileManager index now intialized on startup (pramirez)

* OODT-388 Clearly indicate location for loading globally-required Balance modules (ahart)

* OODT-379 Fix CAS-CLI help option sorting and added handler initialization (bfoster)

* OODT-362 Change CmdLineAction names to match their CmdLineOption long option (bfoster)

* OODT-371 Improvements in the richness and consistency of metadata extracted from the THREDDS catalogs
  in the opendap-ps module (luca)

* OODT-341 XMLPS should be able to stream large results (rickdn)

* OODT-375 Improve ApplicationResponse::includeJavascript to support including 
  JavaScript snippets in addition to static files (ahart)

* OODT-356 Tool to clean Workflow Instance repositories (mattmann, bfoster)

* OODT-372 Correct LDAPAuthenticationProvider class name (Sh<NAME> via ahart)

* OODT-256 updateMetadata needed in XmlRpcFileManager (mattmann)

* OODT-368 Refactoring of metadata extraction functionality for 
  opendapps module (<NAME>, mattmann)

* OODT-366 Extension to opendapps module to extract ALL variables 
  in DDS stream (<NAME>, mattmann)

* OODT-365 Main class to drive opendapps profile generation 
  (<NAME>, mattmann)

* OODT-367 Integrate CAS protocol into PushPull (mattmann, bfoster)

* OODT-364 Prevent XSS attacks via malformed query string (ahart)

* OODT-363 Add support for LuceneQuery action to optionally return more than
  just Product ID results (bfoster)

* OODT-351 Integrate CAS-CLI into CAS-Filemgr (bfoster)

* OODT-360 Add supported for CmdLineAction detailed help description (bfoster)

* OODT-359 CmdLineUtility is not printing action messages (bfoster)

* OODT-358 Change CmdLineUtility's run(String[]) method to throw
  RuntimeException when in debug mode (bfoster)

* OODT-357 Change Print Supported Actions StdCmdLinePrinter output
  format to more "readable" (bfoster)

* OODT-338 XMLPS unit tests should change constructor to 
  setUp() (R<NAME>yen via mattmann)

* OODT-337 XMLPSProductHandler methods should return empty lists instead 
  of null (Ricky Nguyen via mattmann)

* OODT-336 xmlps should omit joining of tables that are unnecessary to 
  fulfill query (<NAME>yen via mattmann)

* OODT-339 MappingReader should add default join table to DatabaseTable 
  if none defined (R<NAME> via mattmann)

* OODT-354 CAS-CLI StdCmdLinePrinter doesn't print optional sub-options
  for group options (bfoster)

* OODT-343 Add support for basic 'environment replacement' in 
  module config.ini files (ahart)

* OODT-353 getXmlRpcProduct and getProductFromXmlRpc should allow 
  null values for product member variables since Product is just 
  a carrier object (bfoster)

* OODT-349 CAS-CLI CmdLineAction should take a printer which
  it is required to print it's messages to (bfoster)

* OODT-350 File Manager query_tool bug fix for Lucene
  style queries (goodale, mattmann, bfoster)

* OODT-348 Integration CAS-Resource with CAS-CLI (bfoster)

* OODT-345 Integration CAS-Workflow with CAS-CLI (bfoster)

* OODT-344 Workflow Conditions and Timeout Seconds causes 
  backwards incompat SerDe issues with XML-RPC (mattmann)

* OODT-330 Factor out command line utility from oodt-commons
    - check in CAS-CLI... integration to other components to come (bfoster)

* OODT-333 XMLPS query doesn't quote literal string 
  (<NAME>, mattmann, <NAME>)

* OODT-323 Add new command line option in Workflow manager 
  client to get Workflow Instance Metadata (Sh<NAME> via mattmann)

* OODT-52 Update the CAS File Manager User Guide (thomas, goodale)

* OODT-322 LDAPAuthenticationProvider class requires 
  a non-existent path (Shakeh Khudikyan via mattmann)

* OODT-321 PEAR install of PHP filemgr is not working 
  properly (Shakeh Khudikyan via mattmann)

* OODT-327 Open SSO plug-in client for CAS-SSO (mattmann, pramirez)

* OODT-326 A tool to dump the File Manager catalog metadata 
  into Solr (mattmann, pramirez)

* OODT-37 Create an Action to Group other Actions Together (pramirez, mattmann)

* OODT-36 Create an Action to Support Simple Branching (pramirez, mattmann)

* OODT-150 ToggleAction addition to crawler (bfoster, mattmann)

* OODT-34 Create an Action to Ingest an Ancillary File (mattmann, pramirez)

* OODT-33 Refactor and Improve File Based Actions (mattmann, pramirez)

* OODT-35 Create an Action to Send an Email (mattmann, pramirez)

* OODT-320 Update OODT About Page (<NAME> via mattmann)

* OODT-61 appendTableName property for mapping files in XMLPS 
  breaks columnname-based lookup in 
  ResultSet (<NAME>, mattmann, davekale) 

* OODT-318 Fix for Jenkins builds and java.io.tmpdir issue 
  for testing via Maven (mattann, <NAME>)
  
* OODT-317 Workflow Priority Sorting (mattmann, bfoster)

* OODT-172 Update CAS Curator Tutorial (thomas via mattmann)

* OODT-316 Add the WorkflowManager Use Case Diagram back into 
  the User Guide (mattmann)

* OODT-43 Add the FileManager Use Case Diagram back into the 
  User Guide (mattmann, cgoodale)

* OODT-313 Copyright statement on OODT website needs updating 
  (mattmann, <NAME>)

* OODT-311 Test failing related to workflow tasks and the 
  DataSourceWorkflowRepository (mattmann, riverma, Cecilia S. Cheng)

* OODT-299 Rename all Authentication properties to use
  Authentication instead of Auth (ahart, <NAME>)

* OODT-309 SequentialWorkflowProcessor doesn't need to be a 
  Thread (mattmann)

* OODT-205 WorkflowInstances should have pre-conditions as 
  well (mattmann)

* OODT-306 Added FileManager Tool Aliases (mattmann, goodale)

* OODT-208 WorkflowConditions should be identifiable as optional 
  or required (mattmann)

* OODT-209 Workflow Manager Dynamic Workflows (mattmann)

* OODT-211 Sub Workflows (mattmann, per OODT-70)

* OODT-207 WorkflowConditions should have a timeout (mattmann)

* OODT-308 WEditor save feature is not implemented (bfoster via mattmann)

* OODT-296 Workflow Editor GUI (mattmann, bfoster, ahart)

* OODT-294 Updated website to announce release of 0.3 (goodale)

* OODT-180 Fixed small typo on website (goodale)

* OODT-70 Add ability for sequential and parallel task 
  specifications for Workflows (mattmann, bfoster)

* OODT-295 BasicVersioner doesn't work with Hierarchical 
  Products (mattmann, <NAME>)


Release 0.3
--------------------------------------------
Release Date: June 20th, 2011

* OODT-292 Updated webapp poms to inherit from core parent pom to allow maven
  release plugin to function properly (pramirez)

* OODT-279 Make Resource Manager FAILURE and SUCCESS aware instead of just 
  COMPLETE aware (mattmann, bfoster)

* OODT-278 CAS-PGE returns success even if product file(s) fail to 
  ingest (mattmann, bfoster)

* OODT-243 Add method is called on already existing jobspec (mattmann, bfoster)

* OODT-199 CoreMetExtractor chokes on Hierarchical Products (mattmann)

* OODT-200 FinalFileLocationExtractor chokes on Hierarchical products
  (mattmann)

* OODT-186 Common base library for modular OODT web applications built 
  using PHP (ahart, <NAME>, <NAME>)

* OODT-191 PushPull FileRetrievalSystem NPE if mime comment for type doesn't 
  include ampersand (mattmann, bfoster) 

* OODT-184 Add ability to poll the load of any particular node (Gabe Resneck via mattmann)

* OODT-60 Annoying build warnings about dependencies that 
  have "been relocated" (mattmann, davidkale)

* OODT-198 Add test harness for XmlRpcResourceManager (mattmann)

* OODT-182 Add ability to change node capacity during execution (Gabe Resneck via mattmann)

* OODT-162 Parametric Data Model File Manager Catalog (mattmann, ahart, cgoodale)

* OODT-195 XMLValidationLayer: Elements Map and ProductType to Element 
  Map can become inconsistent (<NAME>, mattmann, bfoster)

* OODT-197 Null descriptions from elements.xml cause NPE when writing 
  elements.xml file back out (mattmann, Michael Starch)

* OODT-193 PGE ExternMetExtractor MetWriter (bfoster, mattmann)

* OODT-192 PGE FilenameExtractorMetWriter (mattmann)

* OODT-156 Rewrite Workflow Monitor webapp using Apache Wicket (mattmann)

* OODT-190 WorkflowCondition configuration isn't read (mattmann)

* OODT-189 Refactor and clean up WorkflowCondition 
  Configuration (mattmann)

* OODT-188 Precondition Comparator to ignore files with 
  a particular extension (mattmann)

* OODT-129 Integrate with Maven Central (mattmann)

* OODT-177 PHP implementation of sso (ahart)

* OODT-175 cas-wm-webapp javadoc fails maven build (mattmann, bfoster)

* OODT-54 Xml Rpc Serde Casts Longs to Ints (pramirez via mattmann)

* OODT-155 Rewrite File Manager Browser webapp using Apache Wicket (mattmann)

* OODT-185 The File Manager's query_tool script does not handle quoted parameter values. (shardman)

* OODT-181 Add documentation for metFileExt attribute on exec element in
  ExternMetExtractor (mattmann)

* OODT-179 Upgrade PushPull FTP protocol to use Commons Net 2.2 (mattmann)

* OODT-176 Baked in file manager policy should include example of product type metadata (mattmann)

* OODT-174 TestAcquisitionDateVersioner fails in the later evening (bfoster via mattmann)

* OODT-172 Improvements to the Filename Extractor (mattmann)

* OODT-170 cas-catalog shuffles query results . . . order is lost (bfoster)

* OODT-169 Pushpull dirstruct xml files fail to replace global 
  variables in name attribute for dir and file elements (bfoster)

* OODT-166 Ability for puspull to dynamically generate ProductName for a given mime-type (bfoster)

* OODT-167 ProcessedPageInfo isLastPage fails for case PageNum = 1 and totalPages = 0 (bfoster)

* OODT-164 AcqusitionDate Versioner (mattmann)

* OODT-163 DirectoryProduct Versioner for the File Manager (mattmann)

* OODT-160 Allow number of session protocol connections in 
  pushpull to be configurable for each site (bfoster)

* OODT-161 PushPull getTextContext()/getNode() value still poses an issue for some JVMs (bfoster)

* OODT-159 Dynamic Queue/Node was not added to command-line usage printout (bfoster)

* OODT-152 Fixed website and download page.  Reverted back
  to the same site from OODT-134. (goodale)

* OODT-153 PathUtils [DATE.MONTH] and [DATE.DAY] should pad with 
  a "0" not a " " (empty space) (bfoster via mattmann)

* OODT-139 PCS JAX-RS services (mattmann, pramirez, bfoster, ahart)

* OODT-151 Add xdocs for modules from old JPL site (mattmann)

* OODT-110 TestExternMetExtractor fails if temp directory is mounted noexec (pramirez, smclees)

* OODT-145 StreamGobbler stopGobblingAndDie() method doesn't wait 
  until gobble is really dead (bfoster)

* OODT-112 Link to slides on web-grid Maven page is broke (mattmann, goodale)

* OODT-130 Fixed mailing list links for CAS Components maven generated site pages (goodale)

* OODT-144 ExternAction for crawler which executes some external command (bfoster)

* OODT-143 addition of fmprod context.xml and maven servlet-api 
  dependency scope change to provider (Sh<NAME>, mattmann)

* OODT-142 TypeHandler SerDe is backwards incompat with older 
  versions of FM (mattmann)

* OODT-141 LuceneCatalog pagination throws LuceneException when 
  grabbing out of bounds hitNum

* OODT-140 commons-lang version should be standardized on 
  (2.1. vs 2.3) (bfoster)

* OODT-135 Process Control System Package (mattmann)

* OODT-138 Reference class prints stack trace when mime type repo 
  cannot be found (mattmann)

* OODT-136 Lack of cataloged mime type causes recoverable exception in 
  Reference core class (mattmann)

* OODT-134 Update website with News of Release 0.2 and links for download (goodale)

* OODT-128 CAS workflow monitor webapp fails to load due to unparsable 
  character in JSP file (Rishi Verma via mattmann)

Release 0.2 
--------------------------------------------
Release Date: January 17th, 2011

* OODT-119 Curator REST API documentation (mattmann, joshuaga)

* OODT-118 CAS Curator doesn't allow metadata update on file 
  manager browser (mattmann)

* OODT-116 Cas Curator doesn't ingest (mattmann)

* OODT-117 Final File Location Extractor fails in actual use despite unit test 
  passing (mattmann)

* OODT-115 TestCatalogServiceLocal fails (mattmann, pramirez)

* OODT-65 Release process now includes publishing to PyPi (pramirez, kelly, mattmann)

* OODT-112 Link to slides on web-grid Maven page is broke (mattmann, kelly)

* OODT-111 Allow a file to be specified in the URL for the 
  opendapp configurator (<NAME> via mattmann)

* OODT-108 Ability for the file manager to ingest a file in 
  place (<NAME> via mattmann)

* OODT-73 Update the OODT website @ http://oodt.apache.org  (goodale, kelly) 

* OODT-86 The Product Server Should Have the Capability to Turn Off 
  Reporting of File Sizes For File Listing Functions (<NAME> via mattmann)

* OODT-41 Product Constructor does not set transfer status (mattmann)

* OODT-72 Unable to set Metadata based off Product Versioning during 
  Product ingestion (mattmann, bfoster)

* OODT-68 Add Number of Product Hits to ProductPage (bfoster, mattmann)

* OODT-107 Typo identified in filemgr-client usage statement (Rishi Verma via mattmann)

* OODT-58 update file manager to use Tika for mime-type detection (mattmann)

* OODT-106 Logging properties for OPeNDAP ps doesn't include required .level suffix (mattmann)

* OODT-105 Fix GeospatialCoverage in OPeNDAP ps (mattmann)

* OODT-104 Allow const section to plumb information into profile elements (mattmann)

* OODT-90 (cas-crawler patch) CAS-PGE returns success even if product file(s) failed to ingest (bfoster)

* OODT-103 modify cas-common's cmd-line parser to throw a special OptionHelpException if no args 
  are specified so it can be specifically trapped (bfoster)

* OODT-192 cas-catalog should require a metadata flag for allowing Transaction updates (bfoster)

* OODT-95 cas-catalog throws exceptions with blank messages (bfoster)

* OODT-98 Resource Manager TestXmlQueueRepository test fails on some computers because 
 <hashmap>.keySet() order is undefined (bfoster, mattmann)

* OODT-97 Allow for unsorted paging across all catalogs to give option of lowering heap footprint (bfoster)

* OODT-96 cas-catalog query parser fails when bucketNames are given (bfoster)

* OODT-94 DataSourceIndex doesn't filter it's query to the bucket names provided in the QueryExpression (bfoster)

* OODT-93 Spring XML resource classpaths are still set to /gov/nasa/jpl... and commons classpaths were not updates to remove 'cas' (bfoster)

* OODT-91 cas-commons command-line help for a given arguments (bfoster)

* OODT-89 (cas-pushpull patch) Synchonize OODT-CAS components, which depend on one another, on a particular Apache-Tika version (bfoster)

* OODT-88 mvn eclipse:eclipse fails to merge resources (bfoster)

* OODT-89 (cas-metadata patch) Synchonize OODT-CAS components, which depend on one another, on a particular Apache-Tika version (bfoster)

* OODT-87 Add date roll dynamic replacement fuction to PathUtils (bfoster)

* OODT-63 Use hard coded version numbers in shared component POMs so that MVN install works (bfoster)

* OODT-85 XML configurator for opendap crashes on null pointer exceptions for some datasets (<NAME> via mattmann)

* OODT-78 Ability for Resource Manager to dynamically add/remove nodes and modify queues at run-time (bfoster)

* OODT-79 LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the 
  JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds (bfoster)

* OODT-77 Make resource manager Queue aware (bfoster)

* OODT-80 Create Cached JobRepository for cas-resource (bfoster)

* OODT-82 Make resource manager's node ip addresses envReplace-able (bfoster)

* OODT-83 the artifactid for pushpull should change to cas-pushpull (<NAME> via mattmann)

* OODT-76 Commons TimeEventWeightedHash throws a StackOverthrow Error when epsilon is large and event duration is small (bfoster)

* OODT-9 Create a generic OpenDAP profile server (mattmann, <NAME>, smcclees)

* OODT-67 All Loggers should be "static final" (bfoster)

* OODT-66 Allow Filemgr XML-RPC connection retries and retry interval to be configurable (bfoster)

* OODT-62 DateTimeVersioner fails on + side of the GMT line (<NAME> via mattmann)

* OODT-57 LuceneCatalog.getNumHits() doesn't properly translate the 
  given Query object into the equivalent Lucene query (<NAME> via mattmann)



Release 0.1-incubating 
--------------------------------------------
Release Date: 0ct 31, 2010

* OODT-56 Web Grid config contains old caltech licensing header (woollard)

* OODT-55 Latest Tika 0.8-SNAPSHOT broke pushpull (mattmann)

* OODT-51 Workflow unit test fails due to hsql not parsing the apache header correctly (woollard)

* OODT-49 Basic user guide for PushPull (mattmann)

* OODT-22 remove pushpull's jvftp dependency (mattmann)

* OODT-47 Web-grid admin pages reference jpl.eda instead of org.apache.oodt (mattmann)

* OODT-46 XMLPS mapping file doesn't declare XML at top of conf file (mattmann)

* OODT-48 WildcardExpression in XMLPS generates incorrect SQL (mattmann)

* OODT-44 doesn't build in JDK5 because of stringPropertyNames() in 
  cas/workflow/structs/TaskJobInput.java (mattmann, davekale)

* OODT-42 Fix CAS-Catalog to work in apache and pull over new changes 
  since apache port (bfoster)

* OODT-3 Update source code to use ASL headers and add NOTICE, etc. 
  (smcclees, ahart, woollard, mattmann, kelly, pramirez)

* OODT-38 Removed RAT from default build process. Use "mvn -P audit ..." to run RAT (pramirez)

* OODT-40 DataSourceCatalogFactory default validation layer class is incorrect (pramirez via mattmann)

* OODT-39 LuceneCatalogFactory default validation layer class is incorrect (pramirez via mattmann)

* OODT-15 One trunk for all OODT components with top level build (mattmann, bfoster, kelly, woollard)

* OODT-30 updated "grid" svn:ignore property to ignore target folder (David Kale via mattmann)

* OODT-29 Import (ERNE) XMLPS component (<NAME>, ahart, woollard, mattmann)

* OODT-27 Import Web Grid component (<NAME>, mattmann)

* OODT-26 Typo identified in basic user's guide (<NAME> via mattmann)

* OODT-16 OODT website (kelly)

* OODT-24 Fmprod webapp currently depended on the toXML method of the Metadata object 
  in cas-metadata, which has been removed... (woollard)

* OODT-23 remove pushpull's javamail dependency (mattmann)

* OODT-20 Upgrade oodt-profile's jena dependency to more recent version (kelly)

* OODT-19 Metadata should not use a GPL-licensed XML parser (mattmann)

* OODT-7 Curator adds escaped sequenced spaces when reading extractorBinPath 
  tag from extractor config files (joshuaga via mattmann)

* OODT-21 Remove jersey dependency from curator and replace with Apache CXF (mattmann)

* OODT-18 Convert curator to use Apache commons rather than jTidy (mattmann)

* OODT-16 - Remove JPL look+feel and web references, as well as dependency on private JPL M2 
  repository; add relocation tags and disclaimer of Apache Incubation status (kelly)

* OODT-14 User guide pre-requisite to checkout and install oodt-core before attempting to 
   build cas-filemgr (<NAME> via mattmann)

* OODT-4 - Merge cas-commons and edm-commons (mattmann)

* OODT-8 - grid-product/pom.xml references tika ver. 0.2-SNAPSHOT, which no longer exists (<NAME> via mattmann)

* OODT-2 - Import CAS components into OODT SVN (mattmann, joes)


<commit_msg>OODT-622: updated CHANGES.txt<commit_after>Apache OODT Change Log
======================

Release 0.6 - Current Development
--------------------------------------------

* OODT-622 Updated svn:ignore properties for several modules to add Eclipse
  configuration files to the ignore lists (rlaidlaw)

* OODT-572 Replace mkdir with more multi-thread resilient forceMkdir in 
  LocalDataTransferer (<NAME> via mattmann)

* OODT-559 Unit test failure in testDoDynamicReplacement for "Europe/London" 
  timezone (<NAME> via mattmann)

* OODT-615 Fixed bug in SolrCatalog that would throw exception if no matching products are found
           (luca)

* OODT-408 Drop Spring logging levels from WARNING to SEVERE (<NAME>
  via mattmann, bfoster)

* OODT-607 SciPgeWriter that is a simple MetKey template replacer (mattmann)

* OODT-606 SciPgeWriter that uses ApacheVelocity (mattmann, pramirez)

* OODT-592 Provide Solr-based implementation of CAS File Manager (luca)

* OODT-590 modify pcs references in opsui webapp (riverma)

* OODT-589 add pcs_home env variable to env script (riverma)

* OODT-586 RADiX archetype does not properly deploy crawler (riverma)

* OODT-603 Enable Resource Manager start/stop within RADiX (riverma)

* OODT-600 Modularize old OPSUI theme into a separate Wicket "skin" (riverma)

* OODT-599 Modularize new theme into a stand-alone Wicket "skin" (riverma)

* OODT-597 Improve theme/styling of OPSUI (riverma)

* OODT-596 Fix opsui webapp's wicket 'Page Expired' error (riverma)

* OODT-595 Improve styling of Workflow Viewer (webapp/components) (riverma)

* OODT-602 Load not settable for WorkflowTaskJobs in 
  IterativeWorkflowProcessThread (mattmann)

* OODT-470 Enabled RSSProductTransferServlet to be configured using an XML
  configuration file (rlaidlaw)

* OODT-560 XmlStructFactory::getProductTypeMapXmlDocument does not 
  output virtual product types (<NAME> via mattmann)

* OODT-583 Added JUnit test class for RSSConfigReader (rlaidlaw)

* OODT-582 Fix for oodt.cas.product.rss.RSSConfigReader.readTags() for detection
  of source attribute for tags defined in the RSS configuration file (rlaidlaw)

* OODT-576 Used try...finally in oodt.commons.database.SqlScript.loadScript() to
  close BufferedReader (rlaidlaw)

* OODT-537 Push/Pull NullPointerException on startup (mattmann, joyce)

* OODT-578 Workflow Monitor experiences runtime exception (NPE) out 
  of the box with RADIX (Arni Sumarlidason via mattmann)

* OODT-575 Metadata extractor for parsing filename based on regex 
  (Nga Chung via mattmann)

* OODT-573 Refactored the return statement in the getTopNProducts method in the
  LuceneCatalog class (rlaidlaw)

* OODT-571 Updated assignments in setWorkflowInst and setWaitforConditionSatisfy
  methods in IterativeWorkflowProcessorThread class (rlaidlaw)

* OODT-574 RADiX POM Parent References (Arni Sumarlidason via mattmann)

* OODT-491 Add nextState (determineNextState) function to 
  WorkflowProcessor (mattmann)

* OODT-558 Introducing optional web-grid servlet init parameter "org.apache.oodt.grid.GridServlet.config" 
 that can be used to read/write its configuration to a location external to the web app directory (luca).

* OODT-564 XMLPS should provided ordered results based on 
  requested fields (mattmann, joyce)

* OODT-369 Building with Maven3 (mattmann, Adam Estrada)

* OODT-555, OODT-557 - Changed behavior of Lucene Catalog update methods to retrieve a product from the index to the cache, 
  instead of failing if it is not found in the cache. At the same time, simplify the Curator updateMetadata() method to just update
  the metadata, without removing and re-inserting the product before that.
  (luca, rishi, mattmann)

* OODT-553 Update org.apache.oodt.commons.exec.EnvUtilities to Use System.getEnvironment 
  (Michael Starch via mattmann)

* OODT-551 Insert primary key in metadata table for database-based File Manager, to always return metadata values in proper order
           (luca, mattmann, bfoster)

* OODT-548 Be more resilient to table definitions matching the master table 
  in the Mapping config file (mattmann,joyce)

* OODT-546 XMLPS inner-joins default table with itself (mattmann,joyce)

* OODT-547 Switch newest Curator upudate metadata method to use XML-RPC FileManager client.
           Switch other Curator update metadata method to use shared instance of Catalog Factory 
           to minimize use of resources.
           (luca)


Release 0.5 
--------------------------------------------
Release Date: December 18, 2012

* OODT-541 Implement a LenientDataSourceCatalog that allows for dynamically named
  metadata fields, effectively bypassing the validation layer.
  (luca)

* OODT-544 Implement a DataSourceCatalog back-end to the CAS FileManager 
  where the "product_id" column is of type string.
  (luca)

* OODT-545 Allow Curator web app to use a configurable CAS Catalog Factory 
  as specified in curator.xml.
  (luca)

* OODT-543 Update ExpImpCatalog tool to allow core Metadata to pass through 
  when Embedded Catalogs are used (mattmann, cinquini)

* OODT-542 Need to update logging.properties for all servers post CAS CLI
  (mattmann)

* OODT-535 Provide capability to remove metadata tags through Curator 
  web app. (luca)

* OODT-533 Allow SolrIndexer to query and ingest products from the File 
  Manager catalog by name. (luca)

* OODT-534 Better error message when a product is looked by id in the catalog 
  and not found. (luca)
                      
* OODT-529 Allow Lucene Catalog to be "lenient" with respect to XML validation,
  i.e. allow handling of dynamically named fields if the "lenient" flag is set 
  (defaults to false). (luca)

* OODT-530 Bug fix: crawler MetExtractorProductCrawler had a list of precondition 
  beans that was not initialized to an empty list, with would cause a Spring 
  initialization exception when more than one preconditions was injected. (luca)
           
* OODT-531 Bug fix: the legacy Spring configuration file legacy-cmd-line-options.xml 
  was missing some required configuration for the beans "noRecur" and "crawlForDirs".
  (luca)
           
* OODT-532 Bug fix: pre-condition bean "AprioriUniquessCheckWithFilemgr" was missing 
 the filemgrUrl property, which was therefore never set at initialization. (luca)

* OODT-522 Provided additional Curator REST endpoint: "/metadata/update" that updated 
  product metadata in place, i.e. preserves all existing catalog metadata (luca)

* OODT-523 Updated Curator CXF dependency to 2.6.0 and removed FIXME patch to 
  extract "id" from "/metadata/catalog" request (luca)

* OODT-528 Merged back changed to CuratorLuceneCatalog into File Manager LuceneCatalog,
  and change Curator to use mainstream File Manager Lucene Catalog (luca)

* OODT-272 Enable Removal of Finished Ingestion Tasks
  (<NAME> via mattmann)

* OODT-328 Remove jpl.nasa.gov references from code 
  (<NAME> via mattmann)

* OODT-520 Default Crawler launcher doesn't reference FileManager 
  properties (<NAME> via mattmann)

* OODT-502: Support pre and post conditions in Workflow Processor 
  Queue (mattmann)

* OODT-516: Add WorkflowLifecycle tests that check pctComplete for 
  wengine and w1 style lifecycles (mattmann)

* OODT-501: Method to create Processor from Instance should be based on 
  Graph structure (mattmann)

* OODT-511: Solr Indexer Date Formatting Removes Metadata (pramirez)

* OODT-510: SolrIndexer fails on ProductTypes that have 0 products (pramirez, ahart)

* OODT-496: Convert EngineRunner interface to take TaskProcessor (mattmann)

* OODT-505: Remove synchronous Runner (mattmann)

* OODT-498: Overwrite and bring back 0.3 ThreadPoolWorkflowEngine plus 
  patches (mattmann)

* OODT-500: Rename property for max threads in AsyncLocalEngineRunner (mattmann)

* OODT-497: Make WorkflowProcessor PrioritySorters thread-safe (mattmann)

* OODT-492: Refactor Workflow Instance repo to store/retrieve that state 
  information (mattmann)

* OODT-490: Refactor WorkflowProcessor to push all of its state information 
  into Workflow Instance (mattmann)

* OODT-432: Add FileSize to know metadata fields set by CAS-Crawler 
  (bfoster via mattmann)

* OODT-381: Create Runner framework to allow flexible WorkflowTask 
  execution on different runtimes (mattmann, bfoster)

* OODT-215: Workflow2 Architecture (mattmann, bfoster, sherylj)

* OODT-310: Port WEngine to trunk (mattmann, bfoster, sherylj)

* OODT-487: MetadataBasedProductMover to handle when the source and destinations match (cgoodale)

* OODT-488: Enhanced Solr Indexer capabilities (pramirez)

* OODT-390: Removal of optimize call in Lucene Workflow Instance Repository (pramirez)

* OODT-486: WorkflowInstance tries to cast null strings into dates causing
  exceptions on getters/setters (mattmann)

* OODT-483: Fix to prevent NumberFormatException in XmlRpcStructFactory (rlaidlaw)

* OODT-471: Added namespace definitions to RSS config files for CAS REST API (rlaidlaw)

* OODT-469: Modified RSSProductServlet to remove hard-coded namespaces and allow 
configurable namespaces via RSS config files (rlaidlaw)

* OODT-485: Factory out EngineRunner and WorkflowProcessor classes into their own packages (bfoster)

* OODT-481: CAS-Pushpull uniqueMetadataElement is being loaded as empty String instead of null (bfoster)

* OODT-474: Fixed the probem having in a configuration file 
  ProtocolFactoryInfo.xml (mattmann, YunHee Kang)

* OODT-478: Balance: New hook for hooks.php (nhidalgo via ahart)

* OODT-476: RemoteSiteFile doesn't always set RemoteSite (bfoster)

* OODT-477: CommonsNetFtpProtocol throws exception on successful download (bfoster)

* OODT-329: OODT PEAR Channel (Gavin McDonald via mattmann)

* OODT-472: Puny Module - Return to previous page once the user is done editing  (skhudiky)

* OODT-467: Change SciPgeConfigFileWriter to DynamicConfigFileWriter (bfoster)

* OODT-464: Add file staging support to CAS-PGE's XmlFilePgeConfigBuilder (bfoster)

Release 0.4
--------------------------------------------
Release Date: June 13th, 2012

* OODT-446 Addition of Puny module to Balance (skhudiky)

* OODT-462: Include support for special processing instructions in opendap-ps configuration file (luca)

* OODT-463: Ignore container-type DAS attributes when parsing metadata in opendap-ps module (luca)

* OODT-402: Provided default File Manager policy and RSS configuration for 
products with location metadata.  See subtasks OODT-449, 452 and 453. (rlaidlaw)

* OODT-449: Added default GeoRSS configuration file for the CAS REST RSS service. (rlaidlaw)

* OODT-452: Moved File Manager policy files for GenericFile type (elements.xml, product-types.xml, 
product-type-element-map.xml) to filemgr/src/main/resources/examples/core subdirectory.  
Updated six unit tests to use the new subdirectory. (rlaidlaw)

* OODT-453: Added File Manager policy files for simple LocationAwareProduct
(elements.xml, product-types.xml, product-type-element-map.xml). (rlaidlaw)

* OODT-457: add missing Datatables images for paging through Cas-browser index page (skhudiky)

* OODT-455 Small CSS tweak for the OPSUI Wicket App (cgoodale)

* OODT-451 Implemented CAS metadata precondition class to check for existence of given marker file
           within product directory (luca)

* OODT-445 Extend env replace support introduced in OODT-343 (ahart)

* OODT-444 Utils class missing from Balance cas-browser module (ahart)

* OODT-448 added missing character (skhudiky)

* OODT-447 changed reference to CAS-SSO directory in the profile management module README.txt (skhudiky)

* OODT-450 Crawler being able to delete a non-empty product directory
  upon successful product ingestion (luca)

* OODT-421 Make WorkflowLifecycleManager understand 
  WorkflowStates (mattmann)

* OODT-440 Replace legacy getMetadata("UUID") calls with 
  getMetadata("CAS." + CoreMetKeys.PRODUCT_ID) (thomas)

* OODT-442 Apache project branding requirements: DOAP
  file [PATCH] (Sh<NAME> via mattmann)

* OODT-438 Make CAS-Crawlers MimeExtractorConfigReader relative file paths be relative to its
   XML file (bfoster)
 
* OODT-426 Introduce a CAS-Metadata based renaming interface (bfoster)

* OODT-435 Refactor Graph and ParentChildWorkflow class 
  outside of PackagedWorkflowRepository (mattmann)

* OODT-157 PCS Operator User Interface web application  
  (mattmann, ahart, cgoodale, pramirez)

* OODT-401 added profile management module to balance modules directory (skhudiky)
  
* OODT-433 Fix retrieveFileByName and retrieveFileById buy setting the product's references 
  before calling retrieveProduct (thomas)

* OODT-430 Update all boolean type bean properties in the crawler cmd-line-options.xml (thomas)

* OODT-412 Bugfix: MoveMetadataToFailureDir should read MoveMetadataFileToFailureDir (thomas)

* OODT-428 CrawlerBeansPropHandler doesn't set list properties for Spring
  PropertyOverrideConfigurer correctly (bfoster)

* OODT-429 filemgr query throws NPE when sorting by key with possibly empty values (rickdn)

* OODT-427 filemgr query throws "String index out of range: -1" when some products have undefined
  metadata values (rickdn)

* OODT-405 Introduced new syntax for environment variable replacement in opendapps module (luca)

* OODT-425 CAS-PGE logger unit-test fails because it sometimes finds logger lock file (bfoster)

* OODT-422 Allow for CAS-PGE PgeMetadata to be dumped to an xml
  file after initialization (bfoster)

* OODT-410 DataSourceCatalog compatible with HypersonicSQL 
  (mattmann,rickdn,bfoster,pramirez)

* OODT-413 filemgr query throws NPE when some products have undefined metadata values (rickdn)

* OODT-420 CAS-PGE should fail when product ingests fail (bfoster)

* OODT-419 Make PgeConfigBuilder configuration via PgeTaskMetKeys (bfoster)

* OODT-418 Improve CAS-PGE logging (bfoster)

* OODT-71 Add lifecycle model supporting transition, done 
  and waiting states (mattmann)

* OODT-414 Create Java Logger Handler for CAS-PGE (bfoster)

* OODT-415 Add support to ExecUtils callProgram to take OutputStreams
  for forwarding stdout and stderr (bfoster)

* OODT-249 When a node is removed from the Resource Management 
  system, it should be removed from all of its queues as well (gabe via mattmann)

* OODT-376 Addition of Cas-Browser Balance module (gabe)

* OODT-411 Port CAS-PGE's PcsMetadataKeys to PgeTaskMetKeys (bfoster)

* OODT-409 Convert CAS-PGE metadata keys and workflow statuses from static Strings to enums (bfoster)

* OODT-406 Add CAS-PGE support for multiple Property Adders (bfoster)

* OODT-403 Port wengine ControlMetadata to cas-pge's PgeMetadata (bfoster)

* OODT-34 Ability for File Manager to stage an ingested Product to one of its clients (bfoster)

* OODT-400 Add options for CAS-Crawler's SendNotification CrawlerAction (bfoster)

* OODT-399 cas-cli sub-option requirements for help printing was not
  using p:required for GroupSubOption (bfoster)
 
* OODT-395 SerializableMetadata.toXml() doesn't set namespace on root element (rickdn)

* OODT-361 Workflow test event fails with NPE (rickdn)

* OODT-373 PCS OpsUI component not listed in OODT pom.xml (ahart)

* OODT-397 XmlRpcWorkflowManager tests don't properly clean up 
  LuceneCatalog remnants (mattmann)

* OODT-396 Add shutdown hook to the Workflow Manager server (mattmann)

* OODT-394 Integrate CAS-Protocol with CAS-CLI (bfoster)

* OODT-392 Remove old command line option code from commons (bfoster)

* OODT-391 Integrate CAS-Catalog with CAS-CLI (bfoster)

* OODT-352 Integrate CAS-CLI into CAS-Crawler (bfoster)

* OODT-389 Lucene Workflow Instance Repository index now intialized on startup (pramirez)

* OODT-382 Lucene FileManager index now intialized on startup (pramirez)

* OODT-388 Clearly indicate location for loading globally-required Balance modules (ahart)

* OODT-379 Fix CAS-CLI help option sorting and added handler initialization (bfoster)

* OODT-362 Change CmdLineAction names to match their CmdLineOption long option (bfoster)

* OODT-371 Improvements in the richness and consistency of metadata extracted from the THREDDS catalogs
  in the opendap-ps module (luca)

* OODT-341 XMLPS should be able to stream large results (rickdn)

* OODT-375 Improve ApplicationResponse::includeJavascript to support including 
  JavaScript snippets in addition to static files (ahart)

* OODT-356 Tool to clean Workflow Instance repositories (mattmann, bfoster)

* OODT-372 Correct LDAPAuthenticationProvider class name (Sh<NAME>ikyan via ahart)

* OODT-256 updateMetadata needed in XmlRpcFileManager (mattmann)

* OODT-368 Refactoring of metadata extraction functionality for 
  opendapps module (<NAME>, mattmann)

* OODT-366 Extension to opendapps module to extract ALL variables 
  in DDS stream (<NAME>, mattmann)

* OODT-365 Main class to drive opendapps profile generation 
  (<NAME>, mattmann)

* OODT-367 Integrate CAS protocol into PushPull (mattmann, bfoster)

* OODT-364 Prevent XSS attacks via malformed query string (ahart)

* OODT-363 Add support for LuceneQuery action to optionally return more than
  just Product ID results (bfoster)

* OODT-351 Integrate CAS-CLI into CAS-Filemgr (bfoster)

* OODT-360 Add supported for CmdLineAction detailed help description (bfoster)

* OODT-359 CmdLineUtility is not printing action messages (bfoster)

* OODT-358 Change CmdLineUtility's run(String[]) method to throw
  RuntimeException when in debug mode (bfoster)

* OODT-357 Change Print Supported Actions StdCmdLinePrinter output
  format to more "readable" (bfoster)

* OODT-338 XMLPS unit tests should change constructor to 
  setUp() (<NAME> via mattmann)

* OODT-337 XMLPSProductHandler methods should return empty lists instead 
  of null (Ricky Nguyen via mattmann)

* OODT-336 xmlps should omit joining of tables that are unnecessary to 
  fulfill query (R<NAME>guyen via mattmann)

* OODT-339 MappingReader should add default join table to DatabaseTable 
  if none defined (Ricky Nguyen via mattmann)

* OODT-354 CAS-CLI StdCmdLinePrinter doesn't print optional sub-options
  for group options (bfoster)

* OODT-343 Add support for basic 'environment replacement' in 
  module config.ini files (ahart)

* OODT-353 getXmlRpcProduct and getProductFromXmlRpc should allow 
  null values for product member variables since Product is just 
  a carrier object (bfoster)

* OODT-349 CAS-CLI CmdLineAction should take a printer which
  it is required to print it's messages to (bfoster)

* OODT-350 File Manager query_tool bug fix for Lucene
  style queries (goodale, mattmann, bfoster)

* OODT-348 Integration CAS-Resource with CAS-CLI (bfoster)

* OODT-345 Integration CAS-Workflow with CAS-CLI (bfoster)

* OODT-344 Workflow Conditions and Timeout Seconds causes 
  backwards incompat SerDe issues with XML-RPC (mattmann)

* OODT-330 Factor out command line utility from oodt-commons
    - check in CAS-CLI... integration to other components to come (bfoster)

* OODT-333 XMLPS query doesn't quote literal string 
  (<NAME>, mattmann, <NAME>)

* OODT-323 Add new command line option in Workflow manager 
  client to get Workflow Instance Metadata (<NAME> via mattmann)

* OODT-52 Update the CAS File Manager User Guide (thomas, goodale)

* OODT-322 LDAPAuthenticationProvider class requires 
  a non-existent path (Shakeh Khudikyan via mattmann)

* OODT-321 PEAR install of PHP filemgr is not working 
  properly (Shakeh Khudikyan via mattmann)

* OODT-327 Open SSO plug-in client for CAS-SSO (mattmann, pramirez)

* OODT-326 A tool to dump the File Manager catalog metadata 
  into Solr (mattmann, pramirez)

* OODT-37 Create an Action to Group other Actions Together (pramirez, mattmann)

* OODT-36 Create an Action to Support Simple Branching (pramirez, mattmann)

* OODT-150 ToggleAction addition to crawler (bfoster, mattmann)

* OODT-34 Create an Action to Ingest an Ancillary File (mattmann, pramirez)

* OODT-33 Refactor and Improve File Based Actions (mattmann, pramirez)

* OODT-35 Create an Action to Send an Email (mattmann, pramirez)

* OODT-320 Update OODT About Page (<NAME> via mattmann)

* OODT-61 appendTableName property for mapping files in XMLPS 
  breaks columnname-based lookup in 
  ResultSet (<NAME>, mattmann, davekale) 

* OODT-318 Fix for Jenkins builds and java.io.tmpdir issue 
  for testing via Maven (mattann, <NAME>)
  
* OODT-317 Workflow Priority Sorting (mattmann, bfoster)

* OODT-172 Update CAS Curator Tutorial (thomas via mattmann)

* OODT-316 Add the WorkflowManager Use Case Diagram back into 
  the User Guide (mattmann)

* OODT-43 Add the FileManager Use Case Diagram back into the 
  User Guide (mattmann, cgoodale)

* OODT-313 Copyright statement on OODT website needs updating 
  (mattmann, <NAME>)

* OODT-311 Test failing related to workflow tasks and the 
  DataSourceWorkflowRepository (mattmann, riverma, Cecilia S. Cheng)

* OODT-299 Rename all Authentication properties to use
  Authentication instead of Auth (ahart, <NAME>)

* OODT-309 SequentialWorkflowProcessor doesn't need to be a 
  Thread (mattmann)

* OODT-205 WorkflowInstances should have pre-conditions as 
  well (mattmann)

* OODT-306 Added FileManager Tool Aliases (mattmann, goodale)

* OODT-208 WorkflowConditions should be identifiable as optional 
  or required (mattmann)

* OODT-209 Workflow Manager Dynamic Workflows (mattmann)

* OODT-211 Sub Workflows (mattmann, per OODT-70)

* OODT-207 WorkflowConditions should have a timeout (mattmann)

* OODT-308 WEditor save feature is not implemented (bfoster via mattmann)

* OODT-296 Workflow Editor GUI (mattmann, bfoster, ahart)

* OODT-294 Updated website to announce release of 0.3 (goodale)

* OODT-180 Fixed small typo on website (goodale)

* OODT-70 Add ability for sequential and parallel task 
  specifications for Workflows (mattmann, bfoster)

* OODT-295 BasicVersioner doesn't work with Hierarchical 
  Products (mattmann, <NAME>)


Release 0.3
--------------------------------------------
Release Date: June 20th, 2011

* OODT-292 Updated webapp poms to inherit from core parent pom to allow maven
  release plugin to function properly (pramirez)

* OODT-279 Make Resource Manager FAILURE and SUCCESS aware instead of just 
  COMPLETE aware (mattmann, bfoster)

* OODT-278 CAS-PGE returns success even if product file(s) fail to 
  ingest (mattmann, bfoster)

* OODT-243 Add method is called on already existing jobspec (mattmann, bfoster)

* OODT-199 CoreMetExtractor chokes on Hierarchical Products (mattmann)

* OODT-200 FinalFileLocationExtractor chokes on Hierarchical products
  (mattmann)

* OODT-186 Common base library for modular OODT web applications built 
  using PHP (ahart, <NAME>, <NAME>)

* OODT-191 PushPull FileRetrievalSystem NPE if mime comment for type doesn't 
  include ampersand (mattmann, bfoster) 

* OODT-184 Add ability to poll the load of any particular node (Gabe Resneck via mattmann)

* OODT-60 Annoying build warnings about dependencies that 
  have "been relocated" (mattmann, davidkale)

* OODT-198 Add test harness for XmlRpcResourceManager (mattmann)

* OODT-182 Add ability to change node capacity during execution (Gabe Resneck via mattmann)

* OODT-162 Parametric Data Model File Manager Catalog (mattmann, ahart, cgoodale)

* OODT-195 XMLValidationLayer: Elements Map and ProductType to Element 
  Map can become inconsistent (Michael Starch, mattmann, bfoster)

* OODT-197 Null descriptions from elements.xml cause NPE when writing 
  elements.xml file back out (mattmann, Michael Starch)

* OODT-193 PGE ExternMetExtractor MetWriter (bfoster, mattmann)

* OODT-192 PGE FilenameExtractorMetWriter (mattmann)

* OODT-156 Rewrite Workflow Monitor webapp using Apache Wicket (mattmann)

* OODT-190 WorkflowCondition configuration isn't read (mattmann)

* OODT-189 Refactor and clean up WorkflowCondition 
  Configuration (mattmann)

* OODT-188 Precondition Comparator to ignore files with 
  a particular extension (mattmann)

* OODT-129 Integrate with Maven Central (mattmann)

* OODT-177 PHP implementation of sso (ahart)

* OODT-175 cas-wm-webapp javadoc fails maven build (mattmann, bfoster)

* OODT-54 Xml Rpc Serde Casts Longs to Ints (pramirez via mattmann)

* OODT-155 Rewrite File Manager Browser webapp using Apache Wicket (mattmann)

* OODT-185 The File Manager's query_tool script does not handle quoted parameter values. (shardman)

* OODT-181 Add documentation for metFileExt attribute on exec element in
  ExternMetExtractor (mattmann)

* OODT-179 Upgrade PushPull FTP protocol to use Commons Net 2.2 (mattmann)

* OODT-176 Baked in file manager policy should include example of product type metadata (mattmann)

* OODT-174 TestAcquisitionDateVersioner fails in the later evening (bfoster via mattmann)

* OODT-172 Improvements to the Filename Extractor (mattmann)

* OODT-170 cas-catalog shuffles query results . . . order is lost (bfoster)

* OODT-169 Pushpull dirstruct xml files fail to replace global 
  variables in name attribute for dir and file elements (bfoster)

* OODT-166 Ability for puspull to dynamically generate ProductName for a given mime-type (bfoster)

* OODT-167 ProcessedPageInfo isLastPage fails for case PageNum = 1 and totalPages = 0 (bfoster)

* OODT-164 AcqusitionDate Versioner (mattmann)

* OODT-163 DirectoryProduct Versioner for the File Manager (mattmann)

* OODT-160 Allow number of session protocol connections in 
  pushpull to be configurable for each site (bfoster)

* OODT-161 PushPull getTextContext()/getNode() value still poses an issue for some JVMs (bfoster)

* OODT-159 Dynamic Queue/Node was not added to command-line usage printout (bfoster)

* OODT-152 Fixed website and download page.  Reverted back
  to the same site from OODT-134. (goodale)

* OODT-153 PathUtils [DATE.MONTH] and [DATE.DAY] should pad with 
  a "0" not a " " (empty space) (bfoster via mattmann)

* OODT-139 PCS JAX-RS services (mattmann, pramirez, bfoster, ahart)

* OODT-151 Add xdocs for modules from old JPL site (mattmann)

* OODT-110 TestExternMetExtractor fails if temp directory is mounted noexec (pramirez, smclees)

* OODT-145 StreamGobbler stopGobblingAndDie() method doesn't wait 
  until gobble is really dead (bfoster)

* OODT-112 Link to slides on web-grid Maven page is broke (mattmann, goodale)

* OODT-130 Fixed mailing list links for CAS Components maven generated site pages (goodale)

* OODT-144 ExternAction for crawler which executes some external command (bfoster)

* OODT-143 addition of fmprod context.xml and maven servlet-api 
  dependency scope change to provider (Sh<NAME>, mattmann)

* OODT-142 TypeHandler SerDe is backwards incompat with older 
  versions of FM (mattmann)

* OODT-141 LuceneCatalog pagination throws LuceneException when 
  grabbing out of bounds hitNum

* OODT-140 commons-lang version should be standardized on 
  (2.1. vs 2.3) (bfoster)

* OODT-135 Process Control System Package (mattmann)

* OODT-138 Reference class prints stack trace when mime type repo 
  cannot be found (mattmann)

* OODT-136 Lack of cataloged mime type causes recoverable exception in 
  Reference core class (mattmann)

* OODT-134 Update website with News of Release 0.2 and links for download (goodale)

* OODT-128 CAS workflow monitor webapp fails to load due to unparsable 
  character in JSP file (Rishi Verma via mattmann)

Release 0.2 
--------------------------------------------
Release Date: January 17th, 2011

* OODT-119 Curator REST API documentation (mattmann, joshuaga)

* OODT-118 CAS Curator doesn't allow metadata update on file 
  manager browser (mattmann)

* OODT-116 Cas Curator doesn't ingest (mattmann)

* OODT-117 Final File Location Extractor fails in actual use despite unit test 
  passing (mattmann)

* OODT-115 TestCatalogServiceLocal fails (mattmann, pramirez)

* OODT-65 Release process now includes publishing to PyPi (pramirez, kelly, mattmann)

* OODT-112 Link to slides on web-grid Maven page is broke (mattmann, kelly)

* OODT-111 Allow a file to be specified in the URL for the 
  opendapp configurator (<NAME> via mattmann)

* OODT-108 Ability for the file manager to ingest a file in 
  place (<NAME> via mattmann)

* OODT-73 Update the OODT website @ http://oodt.apache.org  (goodale, kelly) 

* OODT-86 The Product Server Should Have the Capability to Turn Off 
  Reporting of File Sizes For File Listing Functions (<NAME> via mattmann)

* OODT-41 Product Constructor does not set transfer status (mattmann)

* OODT-72 Unable to set Metadata based off Product Versioning during 
  Product ingestion (mattmann, bfoster)

* OODT-68 Add Number of Product Hits to ProductPage (bfoster, mattmann)

* OODT-107 Typo identified in filemgr-client usage statement (R<NAME> via mattmann)

* OODT-58 update file manager to use Tika for mime-type detection (mattmann)

* OODT-106 Logging properties for OPeNDAP ps doesn't include required .level suffix (mattmann)

* OODT-105 Fix GeospatialCoverage in OPeNDAP ps (mattmann)

* OODT-104 Allow const section to plumb information into profile elements (mattmann)

* OODT-90 (cas-crawler patch) CAS-PGE returns success even if product file(s) failed to ingest (bfoster)

* OODT-103 modify cas-common's cmd-line parser to throw a special OptionHelpException if no args 
  are specified so it can be specifically trapped (bfoster)

* OODT-192 cas-catalog should require a metadata flag for allowing Transaction updates (bfoster)

* OODT-95 cas-catalog throws exceptions with blank messages (bfoster)

* OODT-98 Resource Manager TestXmlQueueRepository test fails on some computers because 
 <hashmap>.keySet() order is undefined (bfoster, mattmann)

* OODT-97 Allow for unsorted paging across all catalogs to give option of lowering heap footprint (bfoster)

* OODT-96 cas-catalog query parser fails when bucketNames are given (bfoster)

* OODT-94 DataSourceIndex doesn't filter it's query to the bucket names provided in the QueryExpression (bfoster)

* OODT-93 Spring XML resource classpaths are still set to /gov/nasa/jpl... and commons classpaths were not updates to remove 'cas' (bfoster)

* OODT-91 cas-commons command-line help for a given arguments (bfoster)

* OODT-89 (cas-pushpull patch) Synchonize OODT-CAS components, which depend on one another, on a particular Apache-Tika version (bfoster)

* OODT-88 mvn eclipse:eclipse fails to merge resources (bfoster)

* OODT-89 (cas-metadata patch) Synchonize OODT-CAS components, which depend on one another, on a particular Apache-Tika version (bfoster)

* OODT-87 Add date roll dynamic replacement fuction to PathUtils (bfoster)

* OODT-63 Use hard coded version numbers in shared component POMs so that MVN install works (bfoster)

* OODT-85 XML configurator for opendap crashes on null pointer exceptions for some datasets (<NAME> via mattmann)

* OODT-78 Ability for Resource Manager to dynamically add/remove nodes and modify queues at run-time (bfoster)

* OODT-79 LRUScheduler removes a job from the JobQueue, but adds it back if can't schedule it, which (in the 
  JobStack impl) causes JobRepo to create duplicate copies of the same JobSpec with different JobIds (bfoster)

* OODT-77 Make resource manager Queue aware (bfoster)

* OODT-80 Create Cached JobRepository for cas-resource (bfoster)

* OODT-82 Make resource manager's node ip addresses envReplace-able (bfoster)

* OODT-83 the artifactid for pushpull should change to cas-pushpull (<NAME> via mattmann)

* OODT-76 Commons TimeEventWeightedHash throws a StackOverthrow Error when epsilon is large and event duration is small (bfoster)

* OODT-9 Create a generic OpenDAP profile server (mattmann, <NAME>, smcclees)

* OODT-67 All Loggers should be "static final" (bfoster)

* OODT-66 Allow Filemgr XML-RPC connection retries and retry interval to be configurable (bfoster)

* OODT-62 DateTimeVersioner fails on + side of the GMT line (<NAME> via mattmann)

* OODT-57 LuceneCatalog.getNumHits() doesn't properly translate the 
  given Query object into the equivalent Lucene query (<NAME> via mattmann)



Release 0.1-incubating 
--------------------------------------------
Release Date: 0ct 31, 2010

* OODT-56 Web Grid config contains old caltech licensing header (woollard)

* OODT-55 Latest Tika 0.8-SNAPSHOT broke pushpull (mattmann)

* OODT-51 Workflow unit test fails due to hsql not parsing the apache header correctly (woollard)

* OODT-49 Basic user guide for PushPull (mattmann)

* OODT-22 remove pushpull's jvftp dependency (mattmann)

* OODT-47 Web-grid admin pages reference jpl.eda instead of org.apache.oodt (mattmann)

* OODT-46 XMLPS mapping file doesn't declare XML at top of conf file (mattmann)

* OODT-48 WildcardExpression in XMLPS generates incorrect SQL (mattmann)

* OODT-44 doesn't build in JDK5 because of stringPropertyNames() in 
  cas/workflow/structs/TaskJobInput.java (mattmann, davekale)

* OODT-42 Fix CAS-Catalog to work in apache and pull over new changes 
  since apache port (bfoster)

* OODT-3 Update source code to use ASL headers and add NOTICE, etc. 
  (smcclees, ahart, woollard, mattmann, kelly, pramirez)

* OODT-38 Removed RAT from default build process. Use "mvn -P audit ..." to run RAT (pramirez)

* OODT-40 DataSourceCatalogFactory default validation layer class is incorrect (pramirez via mattmann)

* OODT-39 LuceneCatalogFactory default validation layer class is incorrect (pramirez via mattmann)

* OODT-15 One trunk for all OODT components with top level build (mattmann, bfoster, kelly, woollard)

* OODT-30 updated "grid" svn:ignore property to ignore target folder (<NAME> via mattmann)

* OODT-29 Import (ERNE) XMLPS component (<NAME>, ahart, woollard, mattmann)

* OODT-27 Import Web Grid component (<NAME>, mattmann)

* OODT-26 Typo identified in basic user's guide (<NAME> via mattmann)

* OODT-16 OODT website (kelly)

* OODT-24 Fmprod webapp currently depended on the toXML method of the Metadata object 
  in cas-metadata, which has been removed... (woollard)

* OODT-23 remove pushpull's javamail dependency (mattmann)

* OODT-20 Upgrade oodt-profile's jena dependency to more recent version (kelly)

* OODT-19 Metadata should not use a GPL-licensed XML parser (mattmann)

* OODT-7 Curator adds escaped sequenced spaces when reading extractorBinPath 
  tag from extractor config files (joshuaga via mattmann)

* OODT-21 Remove jersey dependency from curator and replace with Apache CXF (mattmann)

* OODT-18 Convert curator to use Apache commons rather than jTidy (mattmann)

* OODT-16 - Remove JPL look+feel and web references, as well as dependency on private JPL M2 
  repository; add relocation tags and disclaimer of Apache Incubation status (kelly)

* OODT-14 User guide pre-requisite to checkout and install oodt-core before attempting to 
   build cas-filemgr (<NAME> via mattmann)

* OODT-4 - Merge cas-commons and edm-commons (mattmann)

* OODT-8 - grid-product/pom.xml references tika ver. 0.2-SNAPSHOT, which no longer exists (<NAME> via mattmann)

* OODT-2 - Import CAS components into OODT SVN (mattmann, joes)



{'fraction_non_alphanumeric': 0.07034973870097054, 'fraction_numerical': 0.030982599207488658, 'mean_word_length': 4.370730202791272, 'pattern_counts': {'":': 0, '<': 87, '<?xml version=': 0, '>': 87, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 36}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2672270', 'n_tokens_mistral': 23661, 'n_tokens_neox': 21341, 'n_words': 8549}