
Version 0.5.5:
-------------

- SubscriptionProxyUpdateTask now runs on on startup?

* Ant no longer used to startup Reptile.

* migrated to reptile.properties initialization.  This is really necessary as I
  need to deploy complex properties and I don't want to deal with command line
  params.

* No longer using reptile.xml for common operations.

* Reworked the way we use the proxy.  No more asynch work... too many threads
  were breaking the VM.

* Tomcat 4.0.3 security hotfix.

* Make copies of INSTALL.txt, README.txt, etc when I do a build.  This is
  targeted at ease-of-use for windows users.

* fixed about 30 bugs that have been plaguing Reptile for a long time.

* Now support RSS 0.92.  This gives us about 5000 channels.

* Rework the way we uses RSS.  Use a DB query and not the source RSS file.  

    - all new channels subscriptions need to be synchronous... now proxy.get we
      need proxy.getAndWait()

* When subscribing to new content, if we add a layer, the subscriptions.xml file
  isnt' updated right away.... think about this.  What is wrong here?

* Manage Subscriptions :

    - delete a subscription.

* if there is only ONE layer to select... don't use a control.  Just use the
  name of the layer.

* faster startup time.  I want to start running Reptile from init and we can't
  do this if we are constantly fetching OCS feeds each time

* Article description not showing up in the ArticleSearchProvider on default
  searches.  We need to write a use case for this.  Basically if we have the
  word 'foo' in the description field, and not in the title, it won't show up in
  a search result.

* new setting 'reptile.setting.channel.handle-read-links' which should specify
  how we handle 'read' links.

    The values should be:
    
        - 'hidden'
        - 'normal-face'

* We should remove the <form> from mozilla-control.xsl.  This is a bad idea
  because content can't support nested forms.  Instead just create a small form
  at the bottom of the rss-1.0.xsl file.

      - revert ot the way we used mozilla-channel-options in the past.  Instead
        of a form for the URL use a cookie.  This way URLs are still portable to
        other scripts.

      - this also has the added benefit of being able to support weblog
        integration into the search results.

      - migrated to using cookies

* Fix the weblog to use the DB.

    - create a DBSearchProvider which is a base that ArticleSearchProvider,
      ChannelSearchProvider and WeblogSearchProvider can extend.  We should then
      provide a constructor for them to use.  (but what do we do about the peer
      class?  reflection?

    - 'Edit channel information' page needs to use the DB and some type of
      metainfo about the peer system.

        - This depends on the new Settings stuff.  Have a dedicated page for
          weblog settings.

* Need a 'home' and 'My Subscriptions' page.  The home would display
  subscriptions with a default layer.  The 'My Subscriptions' page would allow
  you to view single subscriptions or layers like the old 'quicklist' feature
  (but not optimized to use the DB).
  
    - Also include the ability to MANUALLY add a new channel... this should be a
      link on the left.

    - manage subscriptions channel should have a title!

* The subscriptions system has been rewritten to use the database instead of
  subscriptions.xml.  

* URL for fetching the local Weblog as RSS is now:

    http://localhost:8050/reptile/servlet/reptile?reptile.sequence.name=urn:weblog-rss

* Restored old tabbed browsing metaphor when viewing pages with few layers.

* Now have icons for the toolbar

* The (un)read marks systems has now been modernized.  There is now a feature to
  determine how a channel is supposed to be marked.  We also have documentation
  for this and the ability to show (un)read marks in search results.

* Reptile now compiles under JDK 1.4.0

* Total search time is now displayed on the search results page.

* Inline documentation (this is really important because people can't figure
  out how to use Reptile)


  
Version 0.5.0:
-------------

* We now have the full search infrastructure setup.  Channel history, recent
  items, newest items, unread articles.

* We don't always require users to authenticate if

    reptile.system.auth-disabled=true

* Rework the way the website is setup.  All html site docs are under htdocs.
  There is now a /site directory that is created with all resources including
  javadoc.

* We now use Jakarta Commons Collections 'ExtendedProperties' in a number of
  places.

* Fixed a bug which wouldn't allow us to flush the templates cache.  We were
  actually flushing the sequence cache. (the wrong cache)

* We now have the ability to mark *all* subscriptions either read or unread, not
  just specific channels.  

* Reworked the way we execute SQL statements in the build.  This way we support
  multiple SQL files within one <sql> task.

* The MetaUpdate system has been updated.  We now have a dedicate metaupdate
  system and support extensible update mechanisms.

* We now update the Image table with channel images.

* We are not smart enough to provide a DETAILED dump from the StylesheetEngine
  if anything in our XSLT pipe broke.  This is very important for us to have
  when we deploy.  If Reptile breaks on a users machine they can send us the
  error and we can have the ability to debug it.

  An example error looks like:

    --------------------------------------------------------------------------------
    ******************* A StylesheetEngine problem has occured  ********************
    --------------------------------------------------------------------------------

    In StylesheetEngine: org.openprivacy.reptile.xslt.StreamStylesheetEngine
    In sequence: urn:search/channels
    During step: 2
    In stylesheet: resource:/xsl/misc/mozilla/page.xsl
    On line: 660
    On column: 28
    Public ID:
    System ID: 
    With exception classname: org.sax.SAXParserException
    With exception message: invalid UTF-8 character
    XML source is now stored in:  file:///tmp/test.txt

    --------------------------------------------------------------------------------

* Added a submit control to the category selector so that this can be used with
  browsers that don't support javascript

* page.xsl now uses the HTML output method so that we can support HTML 4.01

* We are not using virtual sized fonts instead of pixel sized fonts.  This was a
  problem with brower portability.  Fonts should now look much better on other
  browsers.

* The XML encoding problem has been fixed.  We should now be able to support
  most US and european character sets.  I don't know what we should do about
  this long term.

* Syndic8 OCS feed now works correctly. We also now log if we receive a format
  that we don't support.  Currently reptile has 4700 or so feeds.

* misc html updates, added images for some controls, moved the title from using
  an h1 to using a CSS2 class.

* If you specify '' for you search parameters, Reptile will now display an
  error "you didn't specify a search parameter.  In the past we were executing
  a bad SQL statement here that was causing CPU go to 100%

* Jakarta regexp now included within Reptile.

* Fixed bugzilla bug 74.  It is now possible to save your subscriptions under
  Tomcat 4. 

* If for some reason a control display no content.  The title now includes a
  link to the source.

* We now have an escape extension

  org.openprivacy.reptile.extension.EscapeExtension

  which has an attributes method.  This provides a way of escaping a string so
  that it is capable of becoming an attribute.  Specifically we have to escape "
  and < and >

* Sequence stage dump files are not .xml extensions instead of .dat

* Licensing is now available within Reptile itself.  This also includes all
  other products (Tomcat, Turbine, etc) that Reptile depend on.

* We now register a HypersonicServlet.  This allows you to connect to Reptile
  over HTTP/JDBC.  Basically you just startup a JDBC based admin tool (the Open
  Source Squirrel client is what I would recommend) and connect it to:

    jdbc:hsqldb:http://localhost:8050/reptile/soap/hypersonic

    You can also connect to the following URL to view some basic JDBC stats:

    http://localhost:8050/reptile/soap/hypersonic

    - Note that right now this is open to anyone on the internet and could be
      considered a security hole.  I am going to work with the hsqldb project
      to enable host/ip based security.

* Fixed a bug which causes pages to fail to load under Konqueror and Internet
  Explorer.  Evidently this has been a problem since the last release but no one
  has given me a decent bug report.  Mozilla on Windows has the same problem but
  for some reason Mozilla on Linux doesn't manifest this bug.

* Now using Ant 1.4.1.  

* Refactored stylesheet and sequence support.  Now within a dedicated package
  and modernized.  StylesheetEngine is now an interface with a
  StylesheetEngineFactory implementation.  This is important because now we can
  change the implementation of StylesheetEngine at runtime to support different
  properties and implementations.

  - SAXStylesheetEngine is very fast but also very complicated and can't be
    debugged.

  - DOMStylesheetEngine is fast but wastes memory (because it is DOM).  It can
    be debugged but requires extra overhead to do this.

  - StreamStylesheetEngine is probably the easiest to implement but it the
    slowest of the bunch (XML parser overhead in between stages).  It can NOT be
    debugged without a LOT of work.

  - Here are my notes:

        What package should I put this in?

        org.openprivacy.reptile.xslt

            - this package should contain all XSLT related classes that we
              currently don't use correctly

                - SequenceDispatchEngine should just become SequenceDispatcher

                - StylesheetEngine should become an interface

                - We need a StylesheetEngineFactory which chooses the interface
                  to use.

                - We need an implementation of SAXStylesheetEngine,
                  DOMStylesheetEngine and StreamStylesheetEngine (right now the
                  default should be stream)

                - should StylesheetMap be removed?  not used anymore

                - StylesheetStack should move to the xslt package.

                - SequenceDispatchEntry should move packages.

* Reptile can now startup in debug mode.  This disables all background threads
  and enables JPDA for server debugging on port 2112.

  In order to enable this you need to run (when in the reptile home directory)

  %shell% reptile-ant.sh startup-and-debug

* Reptile now displays less debugging information to stdout

    * removed thread messages
    * removed stylesheet application messages

* Documented system properties that are relevant for Reptile developers in
  htdocs/properties.shtml

* Now using a FULL DateFormat for all timestamps.  This includes the day of the
  week (Monday, Tuesday, etc)

* We now ignore favicons that are 0 bytes in length.

* Ability to see the number of templates in the TemplateCache from settings
  page.

* Reptile webapp is now *reloadable*.  This is a really important change that
  developers should be aware of.  If you recompile reptile and update the
  classes in a running instance, reptile will recognize this and reload all
  classes.  This allows you to change code on the fly and test things out again.

  This allows you to update code, recompile and test it right away.  No Reptile
  startup is incurred and your session is preserved.

  Note that all singletons will be reset so any cache information will be lost.
  Also any background threads will now be stopped due to the fact that the
  ClassLoader that they were loaded from is now invalid.
  
* All RSS items now have favicons.

* All RSS items now have timestamps.  

* Running on non-standard Tomcat control port so that two versions of Tomcat can
  run on the same machine.

* Our Tomcat bundle no longer contains the Apache HTTPD connector (not needed in
  standalone mode, having the port open was just a security hole).

* HISTORY file now included in Reptile distribution.

* The urn:quick-channel/channel-list sequence is now deprecated.  This sequence
  was using XML and was too slow for any practical use.

* Now using database indexes on all tables (where appropriate).  This provides
  faster speed when performing complex DB queries.

* New action (org.openprivacy.reptile.actions.ToggleSystemProperty) provides the
  ability to changes a Java system property from true to false and vice-versa.

* Sequence debug system is now disabled by default

* The old marks system is now totally obsolete.  We support marks inline for
  faster access and a better OO design

* It is now possible to run the Hypersonic Database Manager after Reptile is
  shutdown.  In order to do this change to the REPTILE distribution directory
  and type 'reptile-ant.sh database-manager'

* .bat files are now included for Windows machines.

* fixed a bug with hard coded table names in Peer classes.  We now the *Peer
  member so that if this changes the class won't compile.

* OCS Feed integration mechanism moved to a dedicated packages
    (org.openprivacy.reptile.feeds)

* Refactored the CONTENT table into an ARTICLE table and changed extensions to
  match this.

* SQL/OM Table naming pattern is now non-plural(singular).  This makes the API
  much more usable.

* Reptile now uses Tomcat 4.0.1

* The ability to search among articles within your subscribed channels. 

* Ability to delete a channel from your subscriptions.  

* Page layers/index is now controlled via a <select> control instead of the old
  tab metaphor which caused problems with a large number of layers/indexes.

