diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml new file mode 100644 index 0000000000..24e0e08322 --- /dev/null +++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into alf_activity_feed (id, activity_type, activity_summary, activity_format, feed_user_id, post_user_id, post_date, post_id, site_network, app_tool, feed_date) + values (DEFAULT, #activityType#, #activitySummary#, #activitySummaryFormat#, #feedUserId#, #postUserId#, #postDate#, #postId#, #siteNetwork#, #appTool#, #feedDate#) + + + + values IDENTITY_VAL_LOCAL() + + + + + + + + \ No newline at end of file diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml new file mode 100644 index 0000000000..94cf9d63cd --- /dev/null +++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + insert into alf_activity_feed_control (id, feed_user_id, site_network, app_tool, last_modified) + values (DEFAULT, #feedUserId#, #siteNetwork#, #appTool#, #lastModified#) + + + + values IDENTITY_VAL_LOCAL() + + + + + + + + \ No newline at end of file diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml new file mode 100755 index 0000000000..9aad898137 --- /dev/null +++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into alf_activity_post (sequence_id, status, activity_data, post_user_id, post_date, activity_type, site_network, app_tool, job_task_node, last_modified) + values (DEFAULT, #status#, #activityData#, #userId#, #postDate#, #activityType#, #siteNetwork#, #appTool#, #jobTaskNode#, #lastModified#) + + + + values IDENTITY_VAL_LOCAL() + + + + + + + + + update alf_activity_post set status = #status#, activity_data=#activityData#, site_network=#siteNetwork#, last_modified=#lastModified# + where sequence_id = #id# + and status != #status# + + + + update alf_activity_post set status = #status#, last_modified=#lastModified# + where sequence_id = #id# + and status != #status# + + + \ No newline at end of file diff --git a/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql b/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql new file mode 100644 index 0000000000..36aaf44699 --- /dev/null +++ b/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql @@ -0,0 +1,71 @@ +-- +-- Title: Activities Schema +-- Database: Derby +-- Since: V3.0.0 Schema +-- +-- Note: The Activities schema is NOT managed by Hibernate +-- + + +CREATE TABLE alf_activity_post ( + sequence_id bigint generated by default as identity (start with 1), + post_date timestamp NOT NULL, + status varchar(10) NOT NULL, + activity_data varchar(4000) NOT NULL, + post_user_id varchar(255) NOT NULL, + job_task_node integer NOT NULL, + site_network varchar(255) default NULL, + app_tool varchar(36) default NULL, + activity_type varchar(255) NOT NULL, + last_modified timestamp NOT NULL, + primary key (sequence_id) +); + +CREATE INDEX jobtasknode_idx on alf_activity_post(job_task_node); +CREATE INDEX status_idx on alf_activity_post(status); + + +CREATE TABLE alf_activity_feed ( + id bigint generated by default as identity (start with 1), + post_id bigint default NULL, + post_date timestamp NOT NULL, + activity_summary varchar(4000) default NULL, + feed_user_id varchar(255) NOT NULL, + activity_type varchar(255) NOT NULL, + activity_format varchar(10) default NULL, + site_network varchar(255) default NULL, + app_tool varchar(36) default NULL, + post_user_id varchar(255) NOT NULL, + feed_date timestamp NOT NULL, + primary key (id) +); + +CREATE INDEX postdate_idx ON alf_activity_feed(post_date); +CREATE INDEX feeduserid_idx ON alf_activity_feed(feed_user_id); +CREATE INDEX postuserid_idx ON alf_activity_feed(post_user_id); +CREATE INDEX sitenetwork_idx ON alf_activity_feed(site_network); +CREATE INDEX activityformat_idx ON alf_activity_feed(activity_format); + + +CREATE TABLE alf_activity_feed_control ( + id bigint generated by default as identity (start with 1), + feed_user_id varchar(255) NOT NULL, + site_network varchar(255) NOT NULL, + app_tool varchar(36) default NULL, + last_modified timestamp NOT NULL, + primary key (id) +); + +CREATE INDEX feedcontroluserid_idx ON alf_activity_feed_control(feed_user_id); + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.0-0-CreateActivitiesTables'; +INSERT INTO alf_applied_patch + (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report) + VALUES + ( + 'patch.db-V3.0-0-CreateActivitiesTables', 'Executed script create V3.0: Created activities tables', + 0, 125, -1, 126, CURRENT_TIMESTAMP, 'UNKNOWN', 1, 1, 'Script completed' + ); diff --git a/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample b/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample new file mode 100644 index 0000000000..33130f8179 --- /dev/null +++ b/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + diff --git a/config/alfresco/extension/custom-activities-feed-context.xml.sample b/config/alfresco/extension/custom-activities-feed-context.xml.sample new file mode 100644 index 0000000000..49d97e64b0 --- /dev/null +++ b/config/alfresco/extension/custom-activities-feed-context.xml.sample @@ -0,0 +1,11 @@ + + + + + + + classpath:alfresco/extension/custom-activities-SqlMapConfig.xml + + + + diff --git a/config/alfresco/extension/custom-hibernate-dialect.properties.sample b/config/alfresco/extension/custom-hibernate-dialect.properties.sample index c2a1e97856..a7023363b1 100644 --- a/config/alfresco/extension/custom-hibernate-dialect.properties.sample +++ b/config/alfresco/extension/custom-hibernate-dialect.properties.sample @@ -2,6 +2,11 @@ # Sample Hibernate configuration for changing Database dialect # For a full list: http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#configuration-optional-dialects # + +# +# Derby dialect +# +#hibernate.dialect=org.hibernate.dialect.DerbyDialect # # HSQL dialect diff --git a/config/alfresco/extension/custom-repository.properties.sample b/config/alfresco/extension/custom-repository.properties.sample index 4096b57670..72d113059a 100644 --- a/config/alfresco/extension/custom-repository.properties.sample +++ b/config/alfresco/extension/custom-repository.properties.sample @@ -5,7 +5,7 @@ # # Sample custom content and index data location # -#dir.root=/srv/alfresco/data +#dir.root=/srv/alfresco/alf_data # # Sample database connection properties @@ -27,6 +27,12 @@ # upgrading to a new version, this can be disabled. # #db.schema.update=true + +# +# Derby connection +# +#db.driver=org.apache.derby.jdbc.EmbeddedDriver +#db.url=jdbc:derby:/srv/alfresco/alf_data/derby_data/alfresco;create=true # # HSQL connection diff --git a/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java b/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java index a9552e9fe0..683aad6e3b 100644 --- a/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java +++ b/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java @@ -58,6 +58,7 @@ public class FeedControlDAO this.feedUserId = feedUserId; this.siteNetwork = feedControl.getSiteId(); this.appTool = feedControl.getAppToolId(); + this.lastModified = new Date(); } public FeedControl getFeedControl()