Changes (compared to Daisy 1.1.0)
Features
- Graphical navigation tree editor that should enable non-technical users to
edit the navigation tree (XML knowledge is no longer required). The tree editor
works in both IE and Mozilla and doesn't require any server round tripping, it
all works client side like a desktop application, include easy moving or
cut/copy/paste of nodes, unlimitted undo etc.
-
Comments can now be added to documents.
- The document lookup dialog can now be used for includes and out-of-line
links.
- Generalized the database repository creation and JDBC usage to be able to
support other databses besides MySQL, more specifically PostgreSQL can now be
used.
- The top-left logo is now a link to the home page of the current site, or the
Daisy home page if outside of a site.
- The Daisy Wiki now runs on both the 2.1.X and 2.2 branches of Cocoon.
- Added a 'duplicate document' feature which copies the current document into
a new one.
- Improvements related to hierarchical navigation tree and URL space:
- A 'nice' URL space can now be created by assigning explicit node IDs in the
navigation tree editor. This makes it possible to completely hide the numeric
document IDs from the URL path, if wanted.
- A Daisy Wiki site can now be downloaded using a tool like wget, this is
facilitated by giving certain pages a .html extension (previously there were
paths that were both file and directory, by giving the files a .html extension
this is avoided).
- A group node can now be requested explicitely, which will cause a redirect
to the first document child (possibly recursive if the first child is again a
group). This makes that the contextualized tree mode now also works when using
group nodes (the contextualized tree mode can be activated on a per-site basis
by modifying the sites' siteconf.xml file, look for the contextualizedTree
element)
- Empty group nodes are not shown. Note that the emptyness is user-dependent,
i.e. if a group contains only documents a user has no read access to, thus if
the group node would show up empty for the user, it is not shown.
- Links inside documents to other documents are now translated to their path
in the navigation tree (if they are present in the navigation tree).
- The browser is redirected if necessary so that the URL in the location bar
corresponds to the location in the navigation tree of the current document.
- Added text-extractors for the full text indexer for Microsoft Powerpoint and
Excel files, contributed by Bernard Pire.
- The following parameters are now available in the stylesheet that styles
documents: user (login of the user), userId, role, roleId.
- Users can now register themselves. By default they will get assigned the
role guest, though this is configurable. Registered users are then able to add
comments to documents or subscribe for notification mails. To support the user
registration feature, users have two new properties: confirmed (a boolean) and
confirmKey (a string).
- Added a password/login reminder feature.
- Added a list of sample queries to the query search page.
- When editing a document who's last version is a draft version, set the "
publish changes immediately" flag to false.
- Part data is now handled using streams instead of byte arrays, which makes
handling of parts larger then the available JVM memory possible (theoretical
limit is 2^63 - 1 bytes or filesystem file size limit), and this also speeds up
upload and download of larger parts seriously.
- It is now possible to change the login from error pages.
- Added link to admin pages to navigation.
Bug fixes or non-feature work
- fix xml encoding detection problem in the repository server
- fix classcastexception in authentication code
- fix problem with @ sign being used in login
- fix problem with subscription info being deleted when all subscription
options are turned off
- api change: user management related methods now declared "throws
RepositoryException" instead of throws UserManagementException to avoid n
eedless wrapping of RepositoryExceptions.
- internal cleanup of Remote**Strategy classes, removed lots of duplicated
code.
- removed base element from output, not needed anymore and fixes problem with
hardcoded http (which is a problem when using https)
- fix problem with previewing larger navigation trees
- fix problem with newlines at end of include URLs
- the document state indication (publish/draft) was not translatable in a few
locations, now this is possible
- editing of the login on the user settings page did not actually work, fixed
now.
- the small info line displayed below each document has been replaced by a
separate document info popup window. For the PDFs, the info line in the footer
has been made shorter.
- emailnotifier didn't handle role events, fixed now
- to support some of the new features, the NavigationManager and Emailer
components now have remote implementations of their Java interface.
- fixed a NullPointerException in the diff component.
- when a document node in a navigation tree references a non-existing document
ID, skip it (and log a warning) instead of failing on it.
- the session timeout is by default configured as 120 minutes.
- made it possible to authenticate via the HTTP connector when the login
contains an @ symbol, it can now be escaped by doubling it (thanks to Min
Idzelis for reporting the problem).
- To avoid a naming conflict, the variable 'navigationPath' which was used in
the searchresult stylesheet and in custom search result stylesheets, is now
renamed to searchResultBasePath. Thus if you created any custom query styling
stylesheets, you'll need to update them.
- Fixed a problem that made it impossible to delete a user which was last
updated by the user itself.
- Disabled russian translation because it hasn't been maintained.
- Fix problem with spaces in user, role and collection names in HTTP interface
implementation.
... and probably a bunch of other stuff that we neglected to write down.
Upgrading
In most cases upgrading from Daisy 1.1 to 1.2 should be a matter of minutes
(excluding upgrading custom-developed skins).
Before starting
Shutdown Daisy (the repository server, the daisy wiki, and the openjms
server)
Make backups! More specifically:
- make a copy of the daisy data directory
- do a dump of the database:
mysqldump daisyrepository -uuser -ppassword > daisyrepo.sql
Update database schema
There have been some changes to the database schema (related to the comment
functionality). The database schema can be upgraded by executing a SQL script,
actually there are four of them, located at:
misc/daisy-1_1-to-1_2_pre1_update.sql
misc/daisy-1_2_pre1-to_1_2_pre2_update.sql
misc/daisy-1_2_pre2-to-1_2_pre3.sql
misc/daisy-1_1-to-1_2_pre3_update.sql
(yes, the names of those files are inconsistent)
Since the 1.2-pre3 release there have been no changes to the database schema,
so if you're already running the pre3 release you don't need to update the
database schema.
The names of the files should make it pretty clear which one(s) you need to
execute. If you are directly upgrading from 1.1, use only the last one,
otherwise use the appropriate ones from the first three.
So this is what needs to be done:
cd DAISY_HOME/misc
mysql -Ddaisyrepository -udaisy -p<password>
[then on the mysql prompt]
\. <name-of-the-script>.sql
The last command can be repeated multiple times if you need to execute
multiple scripts.
Configuring JDBC driver classpath
(if you are upgrading from 1.2.0-pre1, 1.2.0-pre2 or 1.2.0-pre3, you can skip
this)
Daisy 1.2 requires to configure the JDBC driver classpath. To do this, edit
the file:
<location-of-daisy-data-dir>/conf/myconfig.xml
and look for the following lines:
<target path="/daisy/datasource/datasource">
<configuration>
Inside the configuration element, add the following element (exact location
is not important):
<driverClasspath>DAISY_HOME/lib/mysql/jars/mysql-connector-java-3.0.15-ga-bin.jar</driverClasspath>
in which you should substitute DAISY_HOME by the real location of your daisy
installation.
Copying over old configuration
Some of the configuration changes done during the initial setup of Daisy
included changes to files within the Daisy distribution directory. These now
need to be copied over:
- OLD_DAISY_HOME/openjms/config/openjms.xml to DAISY_H
OME/openjms/config/openjms.xml
- OLD_DAISY_HOME/daisywiki/webapp/daisy/sites/* to
DAISY_HOME/daisywiki/webapp/daisy/sites
- In DAISY_HOME/daisywiki/webapp/WEB-INF/cocoon.xconf:
- Adjust password for openjms user (if not left to default): <credentials
password="openjms" username="admin"/>
- Adjust password for "internal' user: <cacheUser login="internal"
password="defaultpwd"/>
- If you created any document type-specific stylesheets, you can copy them
over also
- If you developed a custom skin, then you'll have to update it to work with
the new version. There's no easy or quick way to do this.
Edit DAISY_HOME/openjms/bin/setenv.(sh|bat), uncomment the line defining the
CLASSPATH and put the MySQL driver in the CLASSPATH, which can be found at
(substitute DAISY_HOME by its actual location):
DAISY_HOME/lib/mysql/jars/mysql-connector-java-3.0.15-ga-bin.jar
Creating the "registrar" user
(If you are upgrading from 1.2.0-pre2 or pre3 you can skip this step)
In support of the new self-registration and password reminder features, the
Daisy Wiki requires a user with the administrator role for this. By default we
call this user "registrar" and it can be created by the daisy-wiki-init program.
To create the registrar user, first start openjms and repository server, but
NOT the daisy wiki (if necessary, update the DAISY_HOME and OPENJMS_HOME
environment variables first). Then, open a command prompt, make sure DAISY_HOME
is set, and go to the daisy-<version>/install directory. Over there
execute the following command:
daisy-wiki-init --registrar-user
This will prompt for a password for the registrar user. The installation
program will propose a complex autogenerated password. It's fine to leave it to
this, since the next thing the installation program will do is propose to update
the cocoon.xconf file with this password, so you don't need to remember it.
After this, you can also start the Daisy Wiki.
Note about static resources and caching
Since static resources are cached for about 5 hours by your browser, you
might need to do a full reload (shift + reload button on the browsers' toolbar).
Also when opening the editor for the first time do a shift + reload.
Note about users
In release 1.2-pre2 the first name and last name of users where merged into
one name field. In release 1.2-pre3, the name field is again splitted in first
name and last name. The automatic splitting might not be perfect, so have a look
at your users list after updating. If you upgrade directly from 1.1 to 1.2-pre3,
you won't have this problem.
If these instructions or unclear to you, or if you find an error
in them, please share them with us on the Daisy mailing list.