Keeping track of SVN trunk changes
On this page we keep track of SVN revisions that introduce changes to the database schema, the myconfig.xml, or other things which require some upgrade action when working on SVN trunk. This initiative has been started on November 13, 2006.
Newest entries should be put on top.
<daisy-src> is used to refer to the root of the Daisy source tree
Changes since Daisy 2.2 (=revision 4657)
MySQL schema changes:
alter table `daisydev_repository`.`document_tasks` change column `script` `action_type` varchar(100) NOT NULL; alter table `daisydev_repository`.`document_tasks` change column `script_language` `action_parameters` longtext;
Changes between Daisy 2.1 (=revision 4366) and Daisy 2.2 (=revision 4657)
Revision 4573 (December 7, 2007)
Fixed an error in the database schema, column locks.time_expires should allow null values.
Login to MySQL and then execute (copy-paste):
alter table locks change time_expires time_expires datetime;
Revision 4546 (November 29, 2007)
Changed behavior of ACL access details (= finegrained read permissions) evaluation. Only important for people who started using this feature. See this mail for details.
Revision 4524 (November 26, 2007)
Merged BRANCH_TRANSLATION_MANAGEMENT into trunk.
This introduces some database upgrades.
Login to MySQL:
mysql -Ddaisyrepository -udaisy -pdaisy
And then execute (copy-paste):
SET FOREIGN_KEY_CHECKS=0; # # Schema change to support new 'variants' identifier # alter table document_variants add column variant_search VARCHAR (100) NOT NULL after link_search; update document_variants set variant_search = concat(branch_id, ':', lang_id); alter table document_variants add INDEX variant_search (variant_search); # # Schema changes for translation management # # Reference language alter table documents add column reference_lang_id BIGINT after private; alter table documents add FOREIGN KEY (reference_lang_id) REFERENCES languages (id); # Variants: add calculated last/live major change version columns alter table document_variants add column last_major_change_version_id BIGINT after liveversion_id; update document_variants set last_major_change_version_id = lastversion_id; alter table document_variants add column live_major_change_version_id BIGINT after last_major_change_version_id; update document_variants set live_major_change_version_id = liveversion_id where liveversion_id != -1; # Versions alter table document_versions change column state_last_modified last_modified DATETIME NOT NULL; # rename of state_last_modifier fails because of FK -- do it the long way alter table document_versions add column last_modifier BIGINT NOT NULL after state_last_modifier; update document_versions set last_modifier = state_last_modifier; # next statement relies on consistent auto-generated names by MySQL... alter table document_versions drop foreign key document_versions_ibfk_1; alter table document_versions drop column state_last_modifier; alter table document_versions add FOREIGN KEY (last_modifier) REFERENCES users (id); alter table document_versions add column synced_with_lang_id BIGINT after state; alter table document_versions add column synced_with_version_id BIGINT after synced_with_lang_id; alter table document_versions add column synced_with_search VARCHAR (100) after synced_with_version_id; alter table document_versions add column change_type CHAR (1) NOT NULL after synced_with_search; update document_versions set change_type = 'M'; alter table document_versions add column change_comment LONGTEXT after change_type; # # Update schema version number # update daisy_system set propvalue = '2.2' where propname = 'schema_version'; SET FOREIGN_KEY_CHECKS=1;
API compatibility: Version.setState() does not immediate save this change any more, you need to call Version.save() to save the changes.
Revision 4385 (September 4, 2007)
Merged BRANCH_FINEGRAINED_READ_ACCESS into trunk.
If you make use of ACL make sure to review the compatibility notes.
This introduces some database upgrades.
Login to MySQL:
mysql -Ddaisyrepository -udaisy -pdaisy
And then execute (copy-paste):
SET FOREIGN_KEY_CHECKS=0; # # Schema changes for fine grained read access # This includes removal of the 'read live' permission # CREATE TABLE acl_accessdetail ( acl_id BIGINT NOT NULL, acl_object_id BIGINT NOT NULL, acl_entry_id BIGINT NOT NULL, ad_type VARCHAR (20) NOT NULL, ad_data VARCHAR (255), INDEX acl_accessdetail_I_1 (acl_id, acl_object_id, acl_entry_id) ) ENGINE=InnoDB; alter table acl_entries add column read_detail CHAR NOT NULL after perm_delete; update acl_entries set read_detail = 0; # Add an explicit grant for non-live where read is grant update acl_entries set read_detail = 1 where perm_read_live = 'G' and perm_read = 'G'; insert into acl_accessdetail(acl_id, acl_object_id, acl_entry_id, ad_type, ad_data) select acl_id, acl_object_id, id, 'non_live', 'grant' from acl_entries where perm_read_live = 'G' and perm_read = 'G'; # Move 'read live' to read with access details. This upgrade is not perfect in case # the read permission is inherited from earlier rules. update acl_entries set read_detail = 1 where perm_read_live = 'G' and perm_read = 'D'; insert into acl_accessdetail(acl_id, acl_object_id, acl_entry_id, ad_type, ad_data) select acl_id, acl_object_id, id, 'non_live', 'deny' from acl_entries where perm_read_live = 'G' and perm_read = 'D'; update acl_entries set perm_read = 'G' where perm_read_live = 'G' and perm_read = 'D'; # If 'read live' is denied, this implies that 'read' is also denied, make this explicit before dropping the read live update acl_entries set perm_read = 'D' where perm_read_live = 'D'; alter table acl_entries drop column perm_read_live; # update schema version number update daisy_system set propvalue = '2.2' where propname = 'schema_version'; SET FOREIGN_KEY_CHECKS=1;
Changes between Daisy 2.0.1 (=revision 3952) and Daisy 2.1 (=revision 4366)
Revision 4260 (July 30, 2007)
Switching to Maven 1.1 as build tool.
Just about everything stays the same, except that the manual installation of the maven plugins is not needed anymore.
As you can see in the updated README.txt, the maven repository should now be http://repo1.maven.org/maven/ instead of http://mirrors.ibiblio.org/pub/mirrors/maven
To make the switch:
- download & extract Maven 1.1 and
- update the PATH environment variable to point to the new Maven
- (not needed anymore since rev 4271) put a Xalan jar in lib/endorsed as explained in the Daisy <daisy-src>/README.txt
- delete your ~/.maven directory
- drop all the target directories in the Daisy source tree. Linux:
cd <daisy-src> find -name target -exec rm -rf {} \; - build as usual (see also the README.txt)
Revision 4238 (July 27, 2007)
The ActiveMQ configuration done by daisy-repository-init was still adding the problematic poolPreparedStatements property to the database pool configuration.
So you might want to check if it occurs in your ActiveMQ configuration (<repo data dir>/conf/activemq-conf.xml) and remove it if present. It is this line:
<property name="poolPreparedStatements" value="true"/>
Revision 4263 (July 26, 2007)
The branch BRANCH_VARIABLES was merged into trunk.
To make use of the new variables functionality, you will need to run daisy-wiki-init to create a new doc/part type:
cd <daisy-src>/install/target ./daisy-wiki-init-dev
Revision 4176 (July 13, 2007)
Some changes were made to make building Daisy easier, especially with the development setup:
- introduced the use of the "repodata dir" for development setup, so that things are consistent with the binary dist and the manual configuration work is gone
- use different default database names for development (daisydev_repository and daisydev_activemq)
- for the Daisy Wiki, added a "maven cocoon.download" goal to automatically download Cocoon
- for the Daisy Wiki, moved the default location of the wikidata dir to <daisy-src>/../devwikidata to be in line with the default location of the new repodata dir
For binary dists, no special upgrade actions are required.
Changes for repository
For development setups, you will need to create a repodata dir.
If you want to keep your existing configuration files and ata, you can do this manually. Otherwise, use the daisy-repository-init-dev script as explained in the README.txt.
The default location for the repodata dir is: <daisy-src>/../devrepodata
Afterwards, you can remove your <daisy-src>/repository/server/myconfig.xml and activemq-conf.xml
Changes for the Wiki
Nothing is required, but you might align with the new defaults: comment out the cocoon.dist.home and daisywiki.data properties in your <daisy-src>/applications/daisywiki/frontend/build.properties, and follow the instructions in README.txt to build the frontend.
If you want to keep your existing wikidata dir, move it to <daisy-src>/../devwikidata
Revison 4146 (July 5, 2007)
Merged BRANCH_NEWRUNTIME into trunk.
This replaces Merlin with the new Daisy Runtime.
For development setup, no special actions are required, though you can now remove Merlin from your system.
For binary distributions, you need to create a new log4j-based logging configuration for the repository server:
copy <daisy-src>/repository/server/src/conf/repository-log4j.properties to <repo data dir>/conf and remove the logkit.xml
Revision 4025 (May 5, 2007)
genscript-plugin updated (cfr. DSY-461 -- Windows trailing backslash problem), recommended to reinstall it:
cd tools/genscript-plugin maven plugin:install
Revision 3977 (April 18, 2007)
Changed the database schema version number to reflect the decision to call the next Daisy release 2.1 (rather than 2.0.2).
Login to MySQL:
mysql -Ddaisyrepository -udaisy -pdaisy
And then execute:
update daisy_system set propvalue = '2.1' where propname = 'schema_version';
Revision 3960 (April 16, 2007)
The GuestRepositoryProvider allows a configurable guest user. This enables users to change the guest user used for obtaining a repository instance.
Rebuild the wiki : maven clean; maven cocoon.get; maven webapp
Open <wiki.datadir>/daisy.xconf in your favourite editor.
Add these lines inside the cocoon element
<component
class="org.outerj.daisy.frontend.GuestRepositoryProviderImpl"
role="org.outerj.daisy.frontend.GuestRepositoryProvider"
logger="daisy">
<guestUser login="guest" password="guest"/>
</component>
Revision 3958 (April 13, 2007)
Introduced a new selection list type (a link-hierarchical one based on a link field pointing to the parent). This needs a new database table, created as follows.
Login to MySQL:
mysql -Ddaisyrepository -udaisy -pdaisy
And then execute:
CREATE TABLE parentlinkedsellist ( fieldtype_id BIGINT NOT NULL, whereclause LONGTEXT NOT NULL, filtervariants CHAR NOT NULL, linkfield VARCHAR (50) NOT NULL, FOREIGN KEY (fieldtype_id) REFERENCES field_types (id), UNIQUE (fieldtype_id) ) ENGINE=InnoDB; # update schema version number update daisy_system set propvalue = '2.0.2' where propname = 'schema_version';
Changes between Daisy 2.0 RC (rev. 3856) and Daisy 2.0.1 (rev. 3952)
Revision 3872 (Mar 23, 2007)
Upgraded to Lucene 2.1. Added a new field to the index to uniquely identify a document variant, which allows to exploit the new delete-via-writer functionality in this Lucene release (more details in commit mail).
This requires a full rebuild of the fulltext index (first delete the files in the indexstore), as explained in detail in the documentation.
Also, sync your activemq-conf.xml with the activemq-conf.xml.template. Important points:
- the new memoryManager element
- the removal of the poolPreparedStatements attribute on the dataSource.
Changes between Daisy 1.5.1 (rev. 3446) and Daisy 2.0 RC (rev. 3856)
Revision 3842 (Mar 16, 2007)
Upgraded to final jBPM 3.2 release. Apparently the schema changed a bit, so drop the workflow tables by executing the following SQL on the daisyrepository database.
Warning: this will remove all your workflow data.
delete from daisy_system where propname = 'jbpm_schema_version'; SET FOREIGN_KEY_CHECKS=0; drop table JBPM_ACTION; drop table JBPM_BYTEARRAY; drop table JBPM_BYTEBLOCK; drop table JBPM_COMMENT; drop table JBPM_DECISIONCONDITIONS; drop table JBPM_DELEGATION; drop table JBPM_EVENT; drop table JBPM_EXCEPTIONHANDLER; drop table JBPM_ID_GROUP; drop table JBPM_ID_MEMBERSHIP; drop table JBPM_ID_PERMISSIONS; drop table JBPM_ID_USER; drop table JBPM_JOB; drop table JBPM_LOG; drop table JBPM_MODULEDEFINITION; drop table JBPM_MODULEINSTANCE; drop table JBPM_NODE; drop table JBPM_POOLEDACTOR; drop table JBPM_PROCESSDEFINITION; drop table JBPM_PROCESSINSTANCE; drop table JBPM_RUNTIMEACTION; drop table JBPM_SWIMLANE; drop table JBPM_SWIMLANEINSTANCE; drop table JBPM_TASK; drop table JBPM_TASKACTORPOOL; drop table JBPM_TASKCONTROLLER; drop table JBPM_TASKINSTANCE; drop table JBPM_TOKEN; drop table JBPM_TOKENVARIABLEMAP; drop table JBPM_TRANSITION; drop table JBPM_VARIABLEACCESS; drop table JBPM_VARIABLEINSTANCE; SET FOREIGN_KEY_CHECKS=1;
Revision 3787 (Mar 1, 2007)
Incompatible change in workflow (initial value scripts), you need to drop the jBPM data.
Warning: this will remove all your workflow data, I assume nobody is using this for real yet.
delete from daisy_system where propname = 'jbpm_schema_version'; SET FOREIGN_KEY_CHECKS=0; drop table JBPM_ACTION; drop table JBPM_BYTEARRAY; drop table JBPM_BYTEBLOCK; drop table JBPM_COMMENT; drop table JBPM_DECISIONCONDITIONS; drop table JBPM_DELEGATION; drop table JBPM_EVENT; drop table JBPM_EXCEPTIONHANDLER; drop table JBPM_ID_GROUP; drop table JBPM_ID_MEMBERSHIP; drop table JBPM_ID_PERMISSIONS; drop table JBPM_ID_USER; drop table JBPM_JOB; drop table JBPM_LOG; drop table JBPM_MODULEDEFINITION; drop table JBPM_MODULEINSTANCE; drop table JBPM_NODE; drop table JBPM_POOLEDACTOR; drop table JBPM_PROCESSDEFINITION; drop table JBPM_PROCESSINSTANCE; drop table JBPM_RUNTIMEACTION; drop table JBPM_SWIMLANE; drop table JBPM_SWIMLANEINSTANCE; drop table JBPM_TASK; drop table JBPM_TASKACTORPOOL; drop table JBPM_TASKCONTROLLER; drop table JBPM_TASKINSTANCE; drop table JBPM_TOKEN; drop table JBPM_TOKENVARIABLEMAP; drop table JBPM_TRANSITION; drop table JBPM_VARIABLEACCESS; drop table JBPM_VARIABLEINSTANCE; SET FOREIGN_KEY_CHECKS=1;
Revision 3783 (Feb 27, 2007)
A small change to the previous commit, ${siteName} becomes ${site}:
<target path="/daisy/extensions/workflow/workflow-manager">
<configuration>
[ ... ]
<taskURL>http://localhost:8888/daisy/${site}/workflow/performTask?taskId=${taskId}</taskURL>
</configuration>
</target>
Revision 3779 (Feb 27, 2007)
Workflow: added link to open task to the task notification mail. Therefore, add the <taskURL> element to the myconfig.xml as illustrated below.
<target path="/daisy/extensions/workflow/workflow-manager">
<configuration>
[ ... existing stuff ...]
<taskURL>http://localhost:8888/daisy/${siteName}/workflow/performTask?taskId=${taskId}</taskURL>
</configuration>
</target>
Revision 3778 (Feb 23, 2007)
Mail templates for workflow notification have been added. Therefore, add the <mailTemplates> element to the myconfig.xml as illustrated below.
<target path="/daisy/extensions/workflow/workflow-manager">
<configuration>
[ ... existing stuff ...]
<!-- Where to look for workflow mail templates -->
<mailTemplates>
<!-- built-in templates (loaded from the classpath) -->
<location>resource:/org/outerj/daisy/workflow/serverimpl/mailtemplates/</location>
<!-- custom templates in the datadir -->
<location>${daisy.datadir}/templates/workflow/</location>
</mailTemplates>
</configuration>
</target>
Revision 3728 (Feb 12, 2007)
Upgrade to ActiveMQ 4.1.0. This version uses a newer version of spring-xbean for reading its xml configuration files which are in use for Daisy. This makes the reading of the configuration a little stricter which calls for a change to the activemq-conf.xml files.
In <DAISYDATA_DIR>/conf/activemq-conf.xml
The standard activemq configuration provided by Daisy starts with this
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://activemq.org/config/1.0"> <broker useJmx="true" brokerName="DaisyJMS" useShutdownHook="false"> <plugins> ...
The xml namespace should not be placed on the bean element but on the broker element.
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<broker useJmx="true" brokerName="DaisyJMS" useShutdownHook="false"
xmlns="http://activemq.org/config/1.0">
<plugins>
...
Revision 3718 (Feb 9, 2007)
Upgraded to jBPM 3.2beta2 (final 3.2 is expected soon).
The database schema changed a bit. Since no-one probably has important workflow data yet, you can simply drop the current schema as follows, and it will be reinstalled the next time the repository server is started:
delete from daisy_system where propname = 'jbpm_schema_version'; SET FOREIGN_KEY_CHECKS=0; drop table JBPM_ACTION; drop table JBPM_BYTEARRAY; drop table JBPM_BYTEBLOCK; drop table JBPM_COMMENT; drop table JBPM_DECISIONCONDITIONS; drop table JBPM_DELEGATION; drop table JBPM_EVENT; drop table JBPM_EXCEPTIONHANDLER; drop table JBPM_ID_GROUP; drop table JBPM_ID_MEMBERSHIP; drop table JBPM_ID_PERMISSIONS; drop table JBPM_ID_USER; drop table JBPM_LOG; drop table JBPM_MESSAGE; drop table JBPM_MODULEDEFINITION; drop table JBPM_MODULEINSTANCE; drop table JBPM_NODE; drop table JBPM_POOLEDACTOR; drop table JBPM_PROCESSDEFINITION; drop table JBPM_PROCESSINSTANCE; drop table JBPM_RUNTIMEACTION; drop table JBPM_SWIMLANE; drop table JBPM_SWIMLANEINSTANCE; drop table JBPM_TASK; drop table JBPM_TASKACTORPOOL; drop table JBPM_TASKCONTROLLER; drop table JBPM_TASKINSTANCE; drop table JBPM_TIMER; drop table JBPM_TOKEN; drop table JBPM_TOKENVARIABLEMAP; drop table JBPM_TRANSITION; drop table JBPM_VARIABLEACCESS; drop table JBPM_VARIABLEINSTANCE; SET FOREIGN_KEY_CHECKS=1;
Also reinstall sample workflows: in the Daisy Wiki in the Administration console, choose "Manage process definitions" followed by "Reinstall sample workflows".
In case you want to keep your current workflow data, see the schema upgrade statements in the file release.notes.html, part of the jBPM 3.2 download. Execute those statements and also update the jbpm_schema_version setting in the daisy_system table to "3.2".
Revision 3668 (Jan 26, 2007)
Merge of BRANCH_DEREF into trunk. See also this mail.
Database changes to be applied:
alter table document_variants add column link_search VARCHAR(100) not null after lang_id, add index (link_search) ; show warnings; update document_variants set link_search = concat(doc_id, '-', ns_id, '@', branch_id, ':', lang_id); show warnings;
Revision 3607 (Jan 9, 2007)
This revision introduces a user called 'workflow'.
Edit your myconfig.xml and add the following in the configuration of the workflow-manager:
<workflowUser login="workflow" password="defaultpwd"/>
See also the example in the myconfig.xml.template if unsure.
Also, create this user in Daisy (via the wiki admin console or a script). Give the user the Administrator role as default role. For development setups, you should leave the password to 'defaultpwd' for convenience.
Note that if the workflow user does not exist, the repository server will still start up (without workflow available), so you can add this user after upgrading to this SVN version.
For automated installs, daisy-repository-init supports a new property called workflowUserPassword.
Revision 3551 (Nov 13, 2006)
Merge of BRANCH_WORKFLOW into trunk. See also this mail and this mail.
Database changes to be applied:
CREATE TABLE wfpool_sequence ( maxid BIGINT ) Type=InnoDB; CREATE TABLE wf_pools ( id BIGINT NOT NULL, name_ VARCHAR (100) NOT NULL, description VARCHAR (255), last_modified DATETIME NOT NULL, last_modifier BIGINT NOT NULL, updatecount BIGINT NOT NULL, PRIMARY KEY(id), UNIQUE (name_) ) Type=InnoDB; CREATE TABLE wf_pool_members ( pool_id BIGINT NOT NULL, user_id BIGINT NOT NULL, added DATETIME NOT NULL, adder BIGINT NOT NULL, PRIMARY KEY(pool_id,user_id), FOREIGN KEY (pool_id) REFERENCES wf_pools (id), INDEX wf_pool_members_I_1 (user_id) ) Type=InnoDB;
Add the following to the myconfig.xml:
<target path="/daisy/extensions/workflow/workflow-manager"> <configuration> <jbpm> <hibernate> <properties> <entry key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</entry> </properties> </hibernate> </jbpm> </configuration> </target>
In <wiki data dir>/daisy.xconf, inside the <extensions> element, add the following tag:
<extension name="WorkflowManager"
class="org.outerj.daisy.workflow.clientimpl.RemoteWorkflowManagerProvider"/>



There are no comments.