XanderCat OFE 1.2 - Final

Rating: No reviews yet
Downloads: 36
Change Set: bc8e72821b6b
Released: Mar 16, 2016
Updated: Mar 16, 2016 by scottcarnold
Dev status: Stable Help Icon

Recommended Download

Application XanderCatOFE-1.2.zip
application, 1550K, uploaded Mar 16, 2016 - 36 downloads

Release Notes

XanderCat OFE 1.2

Changes Since Last Release (Since 1.1):
  • Added option to set maximum number of results for a search. This can be used instead of or in addition to setting a minimum match percent. When results are restricted by a set maximum number of results, the results returned will be the highest percentage matches (see the Tesla Model S sample application filters file for an example of how to specify a maximum number of results using the CSVFilterSource).
  • Added statistics support. The ObjectFilterEngine can have StatCollector instances added to it, and the SearchUtility has a StatCollectorSource. There is no CSVStatCollectorSource at this time for the SearchUtility, so stat collectors will need to be added programmatically.
  • Added new numeric match styles GREATER_THAN_OR_EQUALS and LESS_THAN_OR_EQUALS for numeric filters.
  • Added new AggregateFilter that can combine multiple other filters into a single filter. This is useful, for example, if you wanted to create a range filter that matches when the value falls within a particular range (create an AggregateFilter, then add both a GREATER_THAN and LESS_THAN filter to it). CSVFilterSource does not support aggregate filters.
  • Added means to set the field types when using the generic MapCandidate with the CSVCandidateSource (provide field types as a CSV list in the properties via the candidate.source.field.types property; providing this property is optional).

Release Contents:

Includes the XanderCatOFE jar which can be used in your own applications, as well as an example use of the Search Utility. The example will search Tesla Model S CPO inventory parsed from a downloaded copy of the HTML from http://ev-cpo.com.

Getting Started:

  • Java version 1.7

Create a folder for the application and unzip the release file into that folder.

Optionally, you can customize the properties and filters, though the defaults should work fine for a quick first test run. Properties are stored in cposearch.properties, and filters are stored in example-filters.txt.

To run the Tesla Model S CPO inventory search, start from the directory you unzipped XanderCatOFE into, and simply execute the batch file cposearch.bat. As it is currently configured, this will send the search results to a text file named cposearch-results.txt in the same directory.

Note that the application is a light-weight console application and does not at this time have a windowed user interface. If you want to verify that the application ran or check for errors, check the out.log file in the log folder. The application will write status information to this log on every run, regardless of how the search result notification is configured.


You can change the location of the various files and attributes through the cposearch.properties file. Edit this file with a text editor.

As packaged, filters are loaded from the example-filters.txt file, input comes from the ev-cpo-20160211.htm file, and output is sent to file cposearch-results.txt. After the first run, a previous-results.dat file will appear in the folder, along with a new log folder that will contain the application log.

The location of all of these files can be changed through the main cposearch.properties file.

The input file is an html file pulled from the ev-cpo.com website. You can get up-to-date input by visiting http://ev-cpo.com, and saving the page (HTML only) to your hard drive (in Firefox, go to File--> Save Page As --> and choose "Web Page, HTML Only" from the type drop down). Replace the previous ev-cpo-20160211.htm file or change the properties to point to the newly downloaded file.

When getting fresh input, if you are interested in this as more than just a demo, consider subscribing to the ev-cpo.com website. Doing so will give you access to more fields to filter on. When subscribed, the only thing different you have to do is log in before saving the page as HTML.

Getting fresh input should work so long as the ev-cpo.com page layout doesn't change significantly. The CPO search application can handle some minor changes in page layout, but larger changes could prevent the page parsing from working correctly. When this happens, you will need to obtain updated HTML parsers for the application.

You can optionally try configuring the application to send you an email of the search results. To do this, comment out the cposearch.properties entries for the ConsoleResultDestination, and uncomment all the entries for the MailResultDestination. You will also need to configure the mail values for an email account. For example, if you wish to use a gmail account, set the properties as follows:
  • result.destination.mail.smtp.auth=true
  • result.destination.mail.smtp.starttls.enable=true
  • result.destination.mail.smtp.host=smtp.gmail.com
  • result.destination.mail.smtp.port=587
  • result.destination.mail.to=comma separated list of destination email addresses
  • result.destination.mail.from=email address for the gmail account
  • result.destination.mail.username=username for the gmail account
  • result.destination.mail.password=password for the gmail account

More information about configuring and running the CPO Search demo application are available in the Documentation on the CodePlex XanderCat OFE website (http://xandercat.codeplex.com).

Reviews for this release

No reviews yet for this release.