Permalink
Commits on Oct 21, 2010
  1. rfe9883: javadoc included in the distribution

    moved javadoc.xml into build.xml and cleaned up the code, added
    copyright, links to java, jena, and sesame javadocs
    
    <release-note>
    rfe9883: javadoc included in the distribution
    
    Javadocs for com.franz.agraph are in the javadoc folder in
    the distribution file, and they link to external javadocs
    for java, jena, and sesame.
    </release-note>
    
    Change-Id: Iccadc0a811fb133dae859a021cdb42505d8bc291
    Reviewed-on: https://gerrit.franz.com:9080/519
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Mike Hinchey committed with dklayer Oct 6, 2010
  2. rfe10077 Document index management in tutorials (java)

    Changes to four files to add user-selected triple indices
    to the java API documentation.
    
    Tested: https://internal.franz.com/people/bruce/ag41docs/java-tutorial/java-tutorial-40.html#Creating%20a%20Repository
    Tested: https://internal.franz.com/people/bruce/ag41docs/java-tutorial/jena-tutorial-40.html#Creating%20a%20Repository
    Tested: Java and Jena examples run without error.
    
    <release-note>
    Rfe10077 - Add user-selected triple indices to tutorials.
    
    The Python, Java, and Jena tutorials have an augmented
    example1() showing how to add and remove triple indices
    for greater efficiency.
    </release-note>
    
    Change-Id: I08e6e89bd0d2cbee2d0cc6d4a41979683d09abd1
    Reviewed-on: https://gerrit.franz.com:9080/880
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Oct 21, 2010
  3. rfe9534: Add sources for jena, arq, and json jars

    make prepush passes
    
    <release-note>
    rfe9534: Add sources for jena, arq, and json jars
    
    Previously the source code for these 3rd party libs had to be
    obtained separately; this change includes them as a debugging
    convenience in the git repository, and sets up the .classpath
    to reference them in Eclipse.
    </release-note>
    
    Change-Id: Ia86a02fe99b3d2e5af11ad59dec567f94ca42db4
    Reviewed-on: https://gerrit.franz.com:9080/805
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Ahmon Dancy <dancy@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Sep 17, 2010
  4. rfe9969: update clojure api

    Changes:
    support leiningen 1.3.1
    use clojure 1.2.0
    maven jars for agraph-java-client and openrdf-sesame-onejar are
    updated on http://clojars.org/groups/com.franz
    
    The version for pom.xml and project.clj is parameterized, using
    env var VERSION.
    
    tested: prepush and 'lein test'
    
    <release-notes>
    rfe9969: update clojure api
    
    AGraph Clojure API updated for agraph v4, clojure 1.2.
    Build support for leiningen 1.3.1, as well as ant.
    
    Clojure and Java source are in the Git repository:
    http://github.com/franzinc/agraph-java-client
    Added README.md for use and development instructions.
    
    Clojure and Java jars are available in the Clojars Maven repository:
    http://clojars.org/groups/com.franz
    agraph-java-client and openrdf-sesame-onejar
    When AGraph v4.1 is released, these will be updated and
    agraph-clj-4.1.jar added.
    
    Changed license to EPL, same as the java code.
    
    Removed agclj.sh in preference for 'lein repl' or 'lein swank'.
    </release-notes>
    
    Change-Id: I297240ce4a9986aeec9d57c1b619b8d52dd795d4
    Reviewed-on: https://gerrit.franz.com:9080/757
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Ahmon Dancy <dancy@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Mike Hinchey committed with dklayer Sep 22, 2010
Commits on Oct 15, 2010
  1. bug19750 bug19553 Small changes to jena tutorial

    Some very small changes to the java jena tutorial.
    
    No change notes.
    
    Change-Id: I2e2114a436991a78a82c132cf578ec3b11721961
    Reviewed-on: https://gerrit.franz.com:9080/856
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Oct 13, 2010
  2. bug19750 bug19553 Small changes to java tutorial

    Some very small changes to the java sesame tutorial.
    
    No change notes.
    
    Change-Id: I1dbffa152aac5def93876f49116d7e916e3adc43
    Reviewed-on: https://gerrit.franz.com:9080/854
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Oct 13, 2010
Commits on Sep 30, 2010
  1. bug19684 - tweak test to match new behavior

    This must be pulled in at the same time the corresponding agraph change is.
    
    tests added    : no
    tests run      : java-prepush
    performance    : no chagne
    release-note   : none, internal change (though see the matching agraph commit)
    
    Change-Id: Ia200c303e5f4e035b1d5de4a6727722bec4e106e
    Reviewed-on: https://gerrit.franz.com:9080/765
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Ahmon Dancy <dancy@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Gary King committed with dklayer Sep 23, 2010
Commits on Sep 27, 2010
  1. bug19694: fix example18 of TutorialTests

    This should have been updated to reflect changes in java-rules.txt
    
    make prepush run
    ant tutorial run
    ant jena-tutorial run
    
    No release notes.
    
    Change-Id: I10a1fee984c202bf6a4ba540459ee56e3853757c
    Reviewed-on: https://gerrit.franz.com:9080/774
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Sep 24, 2010
Commits on Sep 24, 2010
  1. rfe9821 - Make SPARQL examples more robust

    Example10() has been beefed up with extensive explanation
    of SPARQL's FROM, FROM DEFAULT, and FROM NAMED
    operators, and an example of the UNION operator.
    
    <release-note>
    rfe9821 - Make SPARQL examples more robust
    
    Example10() of the Java tutorial has been extended to
    show examples of SPARQL's FROM, FROM DEFAULT, and FROM NAMED
    operators, and an example of the UNION operator.
    </release-note>
    
    Change-Id: I4d8d99f7a8ce6c1bebaaac2df702614b6401402b
    Reviewed-on: https://gerrit.franz.com:9080/761
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Sep 23, 2010
  2. rfe9831 - Java tutorial: Size matters.

    Alterations to the the Java tutorial,
    and TutorialExamples.java example10(), to work in
    examples of conn.size() reporting on specific subgraphs.
    
    <release-note>
    rfe9831 - Java tutorial, illustrate use of conn.size() with contexts.
    
    Example10() of the Java tutorial has been extended to
    show examples of the conn.size() method returning the
    number of triples found in specific subgraphs.
    </release-note>
    
    Change-Id: I3c0db14ba7a76af3c2dd4d93c3aa375d763e4436
    Reviewed-on: https://gerrit.franz.com:9080/663
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Aug 27, 2010
  3. bug19280 Small changes to Java tutorial example12()

    The context is the Java API to freetext indexing.
    Pursuant to bug19280, rfe9319, spr37288, I have made
    some changes to example12, both in code and in the
    tutorial.  One line of the tutorial was out of sync
    with the code, which confused a 4.0.5 user. Further changes
    to the Java API, the example code, and the tutorial
    are expected before 4.1.
    
    No release notes.
    
    Change-Id: Ia81e9a6351f8db2cc6719c552eaa33f81bee3667
    Reviewed-on: https://gerrit.franz.com:9080/657
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Aug 25, 2010
  4. spr37148 Small changes to Java tutorial example1() example2()

    In response to Spr37148, I have very small edits to
    example1() and example2() of the Java tutorial html file,
    and a minuscule change in TutorialExamples.java.
    
    <release-note>
    spr37148 - Question about connecting using java
    
    Two lines of code were inconsistent between the Java tutorial
    HTML file and the tutorial examples code. The tutorial has
    been edited to correct this issue.
    </release-note>
    
    Change-Id: Ifc18e523ffc1224b826229c50c08cdaf5e332e4e
    Reviewed-on: https://gerrit.franz.com:9080/580
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Jul 29, 2010
  5. rfe9915 - Add SPARQL query to example 19 (Java tutorial)

    In response to Spr37211, I have added a SPARQL query to the RDFS++
    example, showing how to turn inference on and off using
    tupleQuery.setIncludeInferred().
    
    I have migrated these changes into the Java training slides and delivered the changed decks to Craig.
    
    <release-note>
    rfe9915 - Java and Python tutorials demonstrate SPARQL and RDFS++
    
    Example19() of the Java and Python tutorials has been augmented
    to demonstrate how to use a SPARQL query with RDFS++ reasoning.
    </release-note>
    
    Change-Id: Ia136dccca3c37676a27221a33834d2eb5904de29
    Reviewed-on: https://gerrit.franz.com:9080/574
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Jul 27, 2010
  6. bug19541 - Clean up output of JAVA tutorial examples 17 and 18.

    These changes clean up display issues that marred tutorial examples
    17 and 18, where "John" "Kennedy" and {Robert} {Kennedy} made people
    ask why the output was so ugly.  I removed a rule from the Prolog rule
    set, returned the string values individually to the client, and then
    concatenated them there.
    
    I have migrated these changes into the training slides and delivered
    the changed decks to Craig.
    
    I don't think this is worthy of a release note.
    
    Change-Id: I63c29edd6352c6b3ae8e26c5bd48325025c2a056
    Reviewed-on: https://gerrit.franz.com:9080/564
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Jul 23, 2010
  7. rfe9806 - SPARQL construct example added to Java/Jena tutorial

    I have provided more realistic examples of SPARQL select, ask, construct, and describe queries (particularly CONSTRUCT). This commit contains
    the Java/Jena files.
    
    <release-note>
    Rfe9806 - In the Python, Java and Jena tutorials, example13() now uses
    the SPARQL "contruct" to create has-grandchild triples, and
    then "describes" a grandparent and a grandchild.
    </release-note>
    
    Change-Id: I2f93a7ce8fdbf552e3f1d7de6ab9fc76b64be7f1
    Reviewed-on: https://gerrit.franz.com:9080/485
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    BruceDClayton committed with dklayer Jul 9, 2010
Commits on Sep 23, 2010
  1. remove hardwired setting of random seed

    Will use events.sh (in root of repo) to start events test and pass
    --seed.
    
    Change-Id: I1b37db20487f3beef76dae6d83d5bd096f098087
    dklayer committed Sep 23, 2010
  2. Events stress test tweaks

    Events.java:
     * Hardwire RANDOM.setSeed to 777, since I can't figure out how to use
       the --seed command line argument.
     * Indent code with 4 spaces instead of the random number used (it
       was close to 8, but it varied greatly).
     * when monitor.sh is executed, print what it prints to stdout
     * don't rely on PATH to start monitor.sh, just exec it in place
       (src/test/stress/monitor.sh)
    
    monitor.sh: print message if $1 isn't recognized
    
    Change-Id: Ida758c02d539c0285b86d36f8f1fb851bce7e9b7
    dklayer committed Sep 23, 2010
  3. add some verbosity to java events stress test

    Change-Id: I0005903b1dcb45eb00229e06ed31f5a75ae0d552
    dklayer committed Sep 23, 2010
  4. synchronize between phases of the events test

    The synchronization depends on variables setup by scripts in
    the agraph-bench repo (master branch).  With these variables the new
    changes are a no-op.
    
    Change-Id: Ib935eb88fc219cb2826206734fa89f136acb4a5f
    dklayer committed Sep 23, 2010
Commits on Sep 22, 2010
Commits on Sep 17, 2010
  1. Enhancements to AGCatalog methods and AGServer.getCatalog

    Tests added and prepush passes.  Root catalog methods also tested
    with use in TBC plugins.
    
    <release-note>
    rfe9837: avoid log warning when opening an existing repo
    
    Added method AGCatalog.hasRepository(id) which tests for existance.
    Added AGCatalog.openRepository(id) which will open but not create.
    Added AGCatalog.createRepository(id,strict) where the strict option
    will throw an exception if the repository already exists.
    
    rfe9980: getCatalog now works with the root catalog
    
    Added AGCatalog.isRootId(id) to identify id's for the root catalog.
    Enhanced AGServer.getCatalog(id) to accept root catalog identifiers.
    Also added AGServer.getCatalog() to return the root catalog.
    </release-note>
    
    Change-Id: I9f79c18ef58e59149efa65168cde7d3c076c3a7a
    Reviewed-on: https://gerrit.franz.com:9080/735
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Bill Millar committed with dklayer Sep 16, 2010
  2. bug19650: fix problem federating repositories from the root catalog

    Previously an exception was thrown when attempting to federate repos
    from the root catalog; this change corrects that.
    
    Tests added: example16 in TutorialTests now federates a repo from
      the root catalog with one from a named catalog.
    make prepush passes
    
    <release-note>
    bug19650: fix problem federating repositories from the root catalog
    
    Previously an exception was thrown when attempting to federate repos
    from the root catalog; this change addresses that.
    </release-note>
    
    Change-Id: I14064ac90a953264c23308cf936bb74efddce0e5
    Reviewed-on: https://gerrit.franz.com:9080/737
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Bill Millar committed with dklayer Sep 16, 2010
Commits on Sep 14, 2010
  1. Fix some bad links in tutorial

    Change-Id: I2242a8f2c45bff43ca415a8598ead842b082a775
    dklayer committed Sep 14, 2010
Commits on Sep 10, 2010
  1. bug19569: java client now helps delete orphaned saved queries

    Preparing a Sesame AGQuery currently has the side effect of saving the
    prepared query on the server in memory for the duration of the session.
    A client app that prepares many queries during a session thus uses up
    server memory.  If an AGQuery instance goes out of scope, the saved
    query is no longer needed on the server and is currently only deleted
    when the session expires.  With this change, the client library no
    longer uses the saved query service during a prepare query, pending
    further cost-benefit analysis of the saved query service.  Client code
    can explicitly request that a query be saved using an experimental
    AGQuery#setSaveName method.  The client library also tries to help
    delete orphaned saved queries sooner by tracking when AGQuery instances
    are garbage collected on the client and issuing delete requests for the
    orphaned saved queries in subsequent query requests.
    
    Test: see AGPrepareQuery.java
    make prepush run
    ant tutorial run
    ant jenatutorial run
    
    <release-note>
    bug19569: java client now helps delete orphaned saved queries
    
    Preparing a Sesame AGQuery currently has the side effect of saving the
    prepared query on the server in memory for the duration of the session.
    A client app that prepares many queries during a session thus uses up
    server memory.  If an AGQuery instance goes out of scope, the saved
    query is no longer needed on the server and is currently only deleted
    when the session expires.  With this change, the client library no
    longer uses the saved query service during a prepare query, pending
    further cost-benefit analysis of the saved query service.  Client code
    can explicitly request that a query be saved using an experimental
    AGQuery#setSaveName method.  The client library also tries to help
    delete orphaned saved queries sooner by tracking when AGQuery instances
    are garbage collected on the client and issuing delete requests for the
    orphaned saved queries in subsequent query requests.
    </release-note>
    
    Change-Id: Id3ff3ab679561d35ff78717ca1001cc4cbe29f0a
    Reviewed-on: https://gerrit.franz.com:9080/605
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Aug 6, 2010
Commits on Sep 7, 2010
  1. rfe10008: java events test: should not require Xterm

    Added command line option
    --monitor true|false Try to start monitor.sh or not. Default: true.
    
    Tests added for: none
    make test-suite run? no - make prepush
    
    Change-Id: I61fa152fd0028b5bd46a57785a209e9113543c5b
    Reviewed-on: https://gerrit.franz.com:9080/676
    Tested-by: Kevin Layer <layer@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Mike Hinchey committed with dklayer Aug 30, 2010
  2. rfe9930: support adding, dropping, listing repository indices

    prepush tests added: see IndexManagementTests.java
    make prepush run
    
    Note: this feature depends on server feature
    
    Change I34fe4038: rfe9906: Support index inspection and manipulation over HTTP.
    
    and all of its dependencies.
    
    <release-note>
    rfe9930: support adding, dropping, listing repository indices
    
    Added methods addIndex, dropIndex, listIndices, and listValidIndices
    to AGRepositoryConnection to support managing repository indices.
    </release-note>
    
    Change-Id: I1195412b8fd17cfef6f83f2e2071ce27bf327cdb
    Reviewed-on: https://gerrit.franz.com:9080/627
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Aug 14, 2010
  3. rfe9845: support owl:Restriction reasoning in the Java client

    The Java client now supports hasValue, someValuesFrom, and
    allValuesFrom reasoning.  In the Sesame AGQuery API one can
    now specify which entailment regime to use when including
    inferences in query results; the new Restriction regime is
    now available as an option, while RDFS++ remains the default.
    Similarly, using the Jena AGReasoner API, one can set up
    AGInfModels with either a Restriction reasoner or the default
    RDFS++ reasoner.
    
    Note: this change relies on the following change:
    
    Change Iaa86be0b: rfe9762 - implement someValuesFrom and allValuesFrom
    
    Tests: jenaRestrictionReasoning added to prepush tests
    make prepush
    ant tutorial run
    ant jena-tutorial run
    
    <release-note>
    rfe9845: support owl:Restriction reasoning in the Java client
    
    The Java client now supports hasValue, someValuesFrom, and
    allValuesFrom reasoning.  In the Sesame AGQuery API one can
    now specify which entailment regime to use when including
    inferences in query results; the new Restriction regime is
    now available as an option, while RDFS++ remains the default.
    Similarly, using the Jena AGReasoner API, one can set up
    AGInfModels with either a Restriction reasoner or the default
    RDFS++ reasoner.
    <release-note>
    
    Change-Id: If6c370aac55d9251e383629b2fdf1306a37a9900
    Reviewed-on: https://gerrit.franz.com:9080/680
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Aug 26, 2010
Commits on Sep 1, 2010
  1. bug19595: repair createGraph() for anonymous graphs

    Previously createGraph() in the no-arg case was trying to use
    an illegal blank node id based on a Jena-internal AnonId; this
    fixes that problem.
    
    Tests added: AGAnonGraphTest
    
    The standard GraphMaker api test doesn't really exercise the
    creatGraph() result, and AGGraphTest ran standard Graph api
    tests against a battery of named graphs.  Added AGAnonGraphTest
    to exercise the Graph api against a battery of anonymous graphs
    too.  Also added an example to AGMoreJenaExamples to show that
    an in-memory OntModel can be added to an AGModel.
    
    Added an ant target jena-compliance-tests to facilitate running
    these from the command line.
    
    ran make prepush
    ran ant jena-compliance-tests
    ran ant jena-tutorial
    
    <release-note>
    bug19595: repair createGraph() for anonymous graphs
    
    Previously createGraph() in the no-arg case was trying to use
    an illegal blank node id based on a Jena-internal AnonID; this
    fixes that problem.
    </release-note>
    
    Change-Id: I8865995249e6230cc182c13f30d498437e5c9e8c
    Reviewed-on: https://gerrit.franz.com:9080/644
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Kevin Layer <layer@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Bill Millar committed with dklayer Aug 17, 2010
  2. rfe9994: java events: generate the same data each time, no random

    Added events.sh to run java events test on command line.
    
    Copied code from the python change in rfe9965:
    Added command line option:
    --seed # can be used on the events test to provide an integer seed
    to the random number generator so that one can do repeated runs with
    the exact same data generated
    
    Tests added for: none
    make test-suite run? no - make prepush
    
    Change-Id: I2896a74702f46d9f5a0e88a324a3630a52480d5e
    Reviewed-on: https://gerrit.franz.com:9080/641
    Reviewed-by: Ahmon Dancy <dancy@franz.com>
    Reviewed-by: Ross Jekel <rjekel@franz.com>
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Mike Hinchey committed with dklayer Aug 19, 2010
  3. rfe9776: add java tests for fix in agraph

    Java tests reproduce problems found using java api.
    Updated test of example8 which compares blank node ids.
    
    No change to library code.
    tests run: prepush
    
    Change-Id: I07b5ed3129172d9660232fb2611f0dc9ed1a3bc4
    Reviewed-on: https://gerrit.franz.com:9080/512
    Reviewed-by: John O'Rourke <john.orourke@franz.com>
    Reviewed-by: Ahmon Dancy <dancy@franz.com>
    Tested-by: Kevin Layer <layer@franz.com>
    Mike Hinchey committed with dklayer Jul 15, 2010
Commits on Aug 12, 2010
Commits on Aug 10, 2010
  1. bug19484: jena always uses reasoning

    Test added, and prepush passes.
    
    <release-note>
    bug19484: jena always uses reasoning
    
    Fixed so reasoning is off by default and enabled when InfModel is used.
    </release-note>
    
    Change-Id: I7ce7dbc5272c380add91c20263767e38831e830e
    Mike Hinchey committed with dklayer Jul 6, 2010
  2. bug19484 and rfe9887 -- Java and Jena inference OFF by default

    I have added brief comments to appropriate parts of the
    Java and Jena tutorials regarding our policy of turning
    off inference by default.
    
    Trivial changes, really.  No change notes.
    
    Change-Id: I780caec155f4353201edcf9d03f79397aa343754
    BruceDClayton committed with dklayer Jul 20, 2010
  3. rfe9887: exclude inferences from Sesame queries by default

    Sesame queries (Tuple, Graph, and Boolean) will now be set to exclude
    inferences by default (this applies when the setIncludeInferred method
    has not been called on the query instance).
    
    make prepush run? yes
    ant tutorial run
    
    <release-note>
    rfe9887: exclude inferences from Sesame queries by default
    
    Sesame queries (Tuple, Graph, and Boolean) will now be set to exclude
    inferences by default (this applies when the setIncludeInferred method
    has not been called on the query instance).
    
    </release-note>
    
    Change-Id: I9789948214c29fcf30a5b40a6c5bb95e6da00c79
    Bill Millar committed with dklayer Jul 19, 2010