Version 0.5.5: ------------- * Users can now tweak the number of task threads on their system through system.properties. * reworked the way we handle system properties. We now have a SystemProperties class that allows us to define them and access them as types. * Task threads are now daemon threads. * Tasks system is now destroyed when reptile is destroyed. This make sure all tasks are stopped. * Hypersonic database now officially SHUTDOWN when the ReptileServlet is destroyed. * 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
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 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